DDD: 实体和其标识符

9

我在系统中有一个实体,自然需要一个标识符来唯一标识它。假设使用数据库和Hibernate生成标识符,采用本地策略,那么显然应用程序代码不需要负责分配标识符。

现在,在实例持久化并获取其标识符之前,该实体实例是否可以被视为有效?
还是应该使用其他策略为实体分配标识符,以便在调用其构造函数时获得标识符?

1个回答

8

这是一个广泛的话题,但有两种可能性:

  • 基于业务键定义你的hashCode()equals(..)合同。例如,对于一个User实体,这将是用户名,而不是自动生成的id。因此,在实体持久化之前,您将能够在集合中使用它。

  • 使用UUID作为主键,并自己处理生成。请参阅Jeff Atwood的这篇文章这篇文章,演示了如何与Hibernate一起使用它。

(由于您提到DDD和Hibernate,请查看我写的这篇文章


谢谢,我想我会选择第二个选项,自己生成ID。 - Abhijeet Kashnia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接