在JPA中,有一个名为的属性referencedColumnName
,可以根据此设置的@JoinColumn, @PrimaryKeyJoinColumn
含义设置该属性,有人可以举例说明可以在何处使用该属性吗?
在那里可以将另一列指定为另一张表的默认 ID 列,例如,考虑以下内容
TableA
id int identity
tableb_key varchar
TableB
id int identity
key varchar unique
// in class for TableA
@JoinColumn(name="tableb_key", referencedColumnName="key")
在对一个与另一个有一对一关系的实体执行jpql查询时,我遇到了一个意外的行为。关键的一点是,关系是从根实体的主键到目标实体的一个字段,而目标实体不是ID。
问题内容: 使用这些批注的重点是要独立于数据库提供程序,而不是重新生成JAR存档。 如果我坚持不懈,那么我首先看不到使用hibernate的意义。如果确实决定切换到其他数据库提供程序,则必须修改类中的注释,然后重新编译应用程序。 问题答案: @Table 批注:@Table批注允许您指定用于将实体保留在数据库中的表的详细信息。 @Table批注提供了四个属性,使您可以覆盖表的名称,目录和架构,并对
我不熟悉Spring数据jpa,并试图理解@OneToOne映射。假设我有一个员工实体和一个公司实体,如果我想映射这两个实体,那么我可以在员工实体上使用一对一映射,这意味着一个员工只能属于一个公司。这种理解是错误的吗?如果一名员工属于一家公司(比如XYZ),那么该公司(XYZ)不能映射到其他员工? 我读过一些帖子,但没有完全理解。
问题内容: 我正在将DAO层从使用Hibernate API更改为使用纯JPA API实现的过程中。似乎推荐的方法是使用实体管理器中的createNamedQuery。命名查询存储在模型/实体类的注释中。这对我来说毫无意义。为什么要在模型对象中定义JPA查询,却在DAO中使用它们。仅在DAO本身中使用createQuery并在DAO中定义查询,甚至在DAO本身中定义命名查询,是否更有意义? 对
问题内容: 我应何时在JPA中使用注释?此注释可以注释哪些数据类型? 问题答案: 表示带注释的字段在数据库中应表示为BLOB(二进制数据)。 您可以使用此注释来注释任何数据类型。在JPA中,持久(检索)后,将使用标准Java序列化对字段内容进行序列化(反序列化)。 的常用用法是在Entity内部注释一个字段,以存储一些未映射到DB列的对象属性。这样,所有未映射的值都可以以binarry表示形式存储
下面的代码来自specs。我不明白为什么中需要。 有人能提供一个恰当的解释吗?