【问题标题】:entity onetomany ..annotation exception实体 onetomany ..annotation 异常
【发布时间】:2023-03-24 03:39:01
【问题描述】:

我有两个类映射 OneToMany、ManyToOne,我得到了异常:

org.hibernate.AnnotationException: mappedBy 引用了一个未知的目标实体属性: entity_package.UserEntity.ownedTickets 中的 entity_package.TicketEntity.ownerEntity

这里是代码:

公共类 UserEntity 实现可序列化 {

@OneToMany(mappedBy="ownerEntity")
public List<TicketEntity> getOwnedTickets() {
    return tickets;
}
public void setOwnedTickets(List<TicketEntity> tickets) {
    this.tickets = tickets;
}

和...

公共类 TicketEntity 实现可序列化 {

private UserEntity ownerEntity;

@ManyToOne
@JoinColumn(name="owner_id")
public UserEntity getOwner() {
    return ownerEntity;
}
public void setOwner(UserEntity owner) {
    this.ownerEntity = owner;
}

怎么了?

【问题讨论】:

    标签: hibernate entity one-to-many many-to-one


    【解决方案1】:

    属性名称是 owner 由带注释的 getter 定义。使用:

    @OneToMany(mappedBy="owner")
    public List<TicketEntity> getOwnedTickets() {
    

    【讨论】:

    • 感谢它的工作 =) 但为什么呢?我的对象被称为 ownerEntity,而不是 owner ... 或者我应该使用 getter 定义的内容?
    • 太棒了!所以你可以接受答案(我的答案附近的 V 按钮)。欢迎来到 Stack!
    • 哦,那是因为 Hibernate 使用带注释的 getXXX getter 中的 XXX 作为属性名称。它允许您为实际的类字段选择所需的任何名称,甚至可以根据某些条件执行一些生成UserEntity 的逻辑。
    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多