我第一次使用SQLAlchemy,想知道……一般来说,在使用SQLAlchemy时,仅依赖于Python的默认相等语义是否足够,而不是ID(主键)相等性吗?
在我之前参与的其他项目中,使用像Java的Hibernate这样的ORM技术时,我们总是重写.equals()以检查对象的主键/id是否相等,但是回过头看看,我不确定这总是必要的。
在我能想到的大多数情况下,您只需要一个具有给定id的给定对象的一个引用。并且该对象始终是所附加对象,因此从技术上讲,您可以通过引用相等性逃脱。
简短的问题:在使用SQLAlchemy时,我是否应该重写我的业务实体的eq()和hash()?
在我之前参与的其他项目中,使用像Java的Hibernate这样的ORM技术时,我们总是重写.equals()以检查对象的主键/id是否相等,但是回过头看看,我不确定这总是必要的。
在我能想到的大多数情况下,您只需要一个具有给定id的给定对象的一个引用。并且该对象始终是所附加对象,因此从技术上讲,您可以通过引用相等性逃脱。
简短的问题:在使用SQLAlchemy时,我是否应该重写我的业务实体的eq()和hash()?
already-persisted object
这部分;无论第二个对象是否已经持久化,它都应该引发错误,对吗? - max