gpt4 book ai didi

java - Hibernate/JPA 映射到基类

转载 作者:行者123 更新时间:2023-11-30 04:44:09 24 4
gpt4 key购买 nike

考虑以下实体。我打算让 Child 类引用两个派生食品类中的任何一个(本地食品或外国食品)。这是一个人为的示例,我的真实域对象非常复杂,因此组合和使用 FoodType 列不是一个选项,因为两个 Food 子类仅在少数特征上相似。

@MappedSuperclass
public abstract class Food {

}



@Entity
public class LocalFood extends Food {

private long id;
private String name;
}


@Entity
public class ForeignFood extends Food {

private long id;
private String name;
}



@Entity
public class Child {
private Food food; //Base Class needed here
@ManyToOne()
public Food getFood() {
return food;
}
}

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.sample.Child.food references an unknown entity: com.sample.Food

使用继承和鉴别器也不行。

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class Food {

private long id; // set , get (Auto gen)
}

是否可以让这种映射起作用?

最佳答案

JB Nizet 是对的。现在食物类看起来像这样。

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Food {

private long id;

public void setId(long id) {
this.id = id;
}

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public long getId() {
return id;
}

}

并且 id 从子类中删除。

关于java - Hibernate/JPA 映射到基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11502652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com