小编leo*_*cci的帖子

jpa hibernate @OneToOne @JoinColumn referencedColumnName 被忽略

我在对与另一个实体具有一对一关系的实体执行 jpql 查询时遇到意外行为。关键点是关系是从根实体的主键到目标实体的不是 ID 的字段。

这是示例:

// root entity
@Entity
@Table(name = "PERSON")

public class Person {

    @Id
    @Column(name = "PERSON_ID")
    private long id;

    private String name;

    @OneToOne(optional = false)
    @JoinColumn(name = "PERSON_ID", referencedColumnName = "PERSON_ID", insertable = false, updatable = false, unique = true)
    private Address mainAddress;
    ...
}
// referenced entity
@Entity
@Table(name = "ADDRESS")
public class Address {

    @Id
    @Column(name = "ADDRESS_ID")
    private long id;

    @Column(name = "PERSON_ID")
    private long personId;
    ...
}
Run Code Online (Sandbox Code Playgroud)

以下 jpql 查询:

select …
Run Code Online (Sandbox Code Playgroud)

java entity hibernate jpa

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

entity ×1

hibernate ×1

java ×1

jpa ×1