我看到了类似的问题,但答案没有帮助。所以,我得到了一个错误:
Use of @OneToMany or @ManyToMany targeting an unmapped class: com.podro.model.Journey.roadWay[com.podro.model.RoadElement]我正在尝试用RoadElements的对象创建列表(它是类Point和节的接口)。还有别的办法吗?据我所知,我认为这是为该类创建适当映射的唯一方法,并列出了这些元素。
@Entity
@Table(name="Journey")
public class Journey {
// Some other fields
@Column(name="road_way")
@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
private List<RoadElement> roadWay;
}
@MappedSuperclass
public interface RoadElement {}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name="Point")
public class Point implements RoadElement{
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
private int id;
private String name;
@Column(name="time_in_days")
private int timeInDays;
private Rate rating;
}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name="Section")
public class Section implements RoadElement{
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
private int id;
@Column(name="section_name" , length=100)
private String sectionName;
@Column(name="time_in_days")
private int timeInDays;
@Column(name="kind_of_transport")
private Locomotion kindOfTransport;
}谢谢你的回答,我非常感谢你的帮助!
发布于 2016-04-30 14:16:31
各实体之间有关联。RoadElement不是一个实体。这是个接口。
你不能做你想做的事。Hibernate需要知道roadWay中包含的实体的类型。
因此,RoadElement应该是一个类,带有@Entity注解,其ID在all中唯一地标识道路元素(段、点等)。
节和点应该从RoadElement扩展,不应该有自己的ID,因为它是从RoadElement继承的。
https://stackoverflow.com/questions/36955819
复制相似问题