我认为这
@EmbeddedId可能更冗长,因为
@IdClass无法使用任何字段访问运算符来访问整个主键对象。使用,
@EmbeddedId您可以这样做:
@Embeddable class EmployeeId { name, dataOfBirth }@Entity class Employee { @EmbeddedId EmployeeId employeeId; ...}
这给构成组合键的字段提供了清晰的概念,因为它们都聚集在通过字段访问运算符访问的类中。
与
@IdClass和的另一个区别
@EmbeddedId是编写HQL时:
与
@IdClass你一起写:
从员工e中选择e.name
和
@EmbeddedId你一起写:
从员工e中选择e.employeeId.name
您必须为同一查询写更多文本。有人可能会认为这与一种更自然的语言(如)提倡的语言不同
IdClass。但是大多数时候,从查询中正确了解给定字段是组合键的一部分是非常有用的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)