我应该使用哪个注释:@IdClass或@EmbeddedId

我应该使用哪个注释:@IdClass或@EmbeddedId,第1张

我应该使用哪个注释:@IdClass或@EmbeddedId

我认为这

@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
。但是大多数时候,从查询中正确了解给定字段是组合键的一部分是非常有用的。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5176195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存