我问了“Is it really worth implementing toString()
for entity classes?”。我接受的answer演示了实体类的toString()
方法的实用程序,该实体类编写了实体的“名称”或“ID”(并且,我会说,其他并不多)。但这要求实体具有“名称”或“ID”。
那么,实体类总是是否有ID字段。如果它自然没有,那么你应该添加一个,it is useful only for debugging?也许是private final long
?那can be done elegantly and efficiently。
我不是说数据库支持的类。这里是一个实体我指的是一个具有不变量的类(对于非null x )
x.equals(y) == (x == y)
答案 0 :(得分:0)
ID几乎不变地引用一个唯一标识持久记录的字段,而不管从该持久记录中水合的对象实例之间是否有任何其他变化。
因此,对您的问题的简短回答是,不,“域”类不一定必须有ID字段。大多数人会,因为你几乎肯定会想要坚持你的领域,在这种情况下,这是最好的做法(比如,名字,姓氏,DOB和SSN的复合PK,但是如果你写一个只保存内存中的东西的类,可能是视图助手或业务逻辑类,不要打扰。