EclipseLink user guide指出,在为复合主键构造IdClass(未嵌入)时,它必须具有公共无参构造函数,并实现方法equals
和hashCode
。此外,它给出的示例还实现了getter和setter。
Persistence WikiBook有一个带有参数的公共构造函数,没有无参数构造函数,没有getter和setter,并且明确声明EclipseLink不需要实现equals
和hashCode
。 / p>
确实需要以下哪些?我可以使用只有属性的最小IdClass,没有构造函数和方法,因为EclipseLink会为我生成这些吗?这取决于EclipseLink的版本吗?
答案 0 :(得分:2)
只需要no-arg构造函数(除非你定义了另一个,否则由java生成)。您可以使用仅包含属性的最小类。
但是,在这种情况下,EclipseLink不会生成任何内容(即使使用编织),这意味着您可能会遇到基于哈希或基于等号的操作的意外问题。