我正在尝试使用JPA 2.0来创建具有泛型关系的多态实体.应该有两个表,一个事件表和一个通知表.在这些表中是彼此相关的具体实体,如下所示:
Event <---------- Notification<X extends Event>
| |
LoginEvent <------ LoginNotification extends Notification<LoginEvent>
Run Code Online (Sandbox Code Playgroud)
从逻辑上讲,这应该可以在hibernate中实现,因为它可以在SQL中实现:
+----------+ +----------+
| Event | | Notif |
+----------+ +----------+
| | | Id |
| Id | <- | Evt_id |
| Type | <- | Type |
| ... | | ... |
+----------+ +----------+
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的:
@Entity
@Inheritance
public abstract class Event{
...
}
@Entity
public class LoginEvent extends Event{
...
}
@Entity
@Inheritance
public abstract class Notification<X extends Event>{
@ManyToOne(optional=false, targetEntity=Event.class)
@JoinColumn …Run Code Online (Sandbox Code Playgroud)