EclipseLink user guide规定在为复合主键构造 IdClass(未嵌入)时,它必须具有公共(public)无参构造函数并实现方法 equals
和 hashCode
。此外,它给出的示例还实现了 getter 和 setter。
Persistence WikiBook有一个带参数的公共(public)构造函数,没有无参构造函数,没有 getter 和 setter,并且明确声明 EclipseLink 不需要实现 equals
和 hashCode
。
其中哪一个是真正需要的?我可以使用只有属性、没有构造函数和方法的最小 IdClass,因为 EclipseLink 会为我生成这些吗?这取决于 EclipseLink 的版本吗?
最佳答案
仅需要无参数构造函数(除非您定义了另一个构造函数,否则该构造函数由 java 生成)。您可以使用仅包含属性的最小类。
但是,在这种情况下,EclipseLink 不会生成任何内容(即使使用编织),这意味着您可能会遇到基于哈希或等于的操作的意外问题。
关于eclipselink - EclipseLink 中的 IdClass 有哪些要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035862/