的JPA
(Java持久性API)规范有2名不同的方式来指定实体组合键:@IdClass
和@EmbeddedId
。
我在映射的实体上同时使用了这两个注释,但是对于不太熟悉的人来说,这真是一个大麻烦JPA
。
我只想采用一种指定复合键的方法。哪个真的是最好的?为什么?
我认为这@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
。但是大多数时候,从查询中正确了解给定字段是组合键的一部分是非常有用的。
由于请求的不同用法和注释,我一直很困惑
我将guava jar文件添加到类路径中,但我的IDE(eclipse)说: Nullable无法解析为类型 但如果我ctrl+单击Nullable,我会看到蓝色下划线,然后看到下划线:
我用<code>列表视图</code>创建了一个活动。这是一个朋友。 我想让它选择将其添加到另一个。 我不知道选择哪个<code>视图</code>最好<代码>循环视图或
问题内容: 在这个问题中,如何在C 11中有效地选择标准库容器?是选择C 集合时要使用的便捷流程图。 我认为对于那些不确定应该使用哪个集合的人来说,这是一个有用的资源,因此我试图找到类似的Java流程图,但未能做到。 哪些资源和“备忘单”可用来帮助人们选择使用Java进行编程时使用的正确Collection?人们如何知道应该使用哪些List,Set和Map实现? 问题答案: 由于找不到相似的流程图
在这个问题中,如何在C 11中有效地选择标准库容器?是选择C集合时使用的方便流程图。 我认为对于那些不确定应该使用哪个集合的人来说,这是一个有用的资源,所以我试图找到一个类似的Java流程图,但没能做到。 有哪些资源和“备忘单”可以帮助人们在用Java编程时选择正确的集合?人们如何知道他们应该使用什么列表、集合和映射实现?
问题内容: 有两个progid。我看过都用过。 任何人都对我何时应该使用一个相对于另一个使用有任何见解? 问题答案: 海志es 看看这些 http://bytes.com/topic/javascript/answers/559991-msxml-xmlhttp-vs-microsoft- xmlhttp http://forums.asp.net/p/1000060/1622845.aspx