Java Hibernate继承注释说明
在我们的遗留代码中,我偶然发现了一个hibernate类实现,我无法完全理解它 有一个超级类对应于表工作\u请求\u组-Java Hibernate继承注释说明,java,hibernate,Java,Hibernate,在我们的遗留代码中,我偶然发现了一个hibernate类实现,我无法完全理解它 有一个超级类对应于表工作\u请求\u组- @Entity @Table(name="WORK_REQUEST_GROUPS") @Inheritance(strategy=InheritanceType.JOINED) public class CCSRequestGroup { @Id @GeneratedValue(strategy=GenerationType.AUTO)
@Entity
@Table(name="WORK_REQUEST_GROUPS")
@Inheritance(strategy=InheritanceType.JOINED)
public class CCSRequestGroup
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="REQUEST_GROUP_ID")
private Long groupId;
....
}
然后我们有一个子类对应于表RELEASE_候选者-
@Entity
@Table(name="RELEASE_CANDIDATES")
@PrimaryKeyJoinColumn(name="RELEASE_CANDIDATE_ID")
public class CCSReleaseCandidate extends CCSRequestGroup {
@ManyToOne
@JoinColumn(name="GROUP_CONDITION_CODE")
private CCSRequestGroupCondition condition;
....
}
根据我的理解,CCSReleaseCandidates是CCSRequestGroup的子类,在RELEASE_CANDIDATES_ID列中加入
现在我们有了一种方法,在这种方法中,我们试图找出具有某些条件的CCSRequestGroup实例-
List<CCSRequestGroup> requests = session.createQuery("from CCSRequestGroup requestGroup where requestGroup.condition = \'AwaitingStartTime\' order by RAND()").list();
List requests=session.createQuery(“来自CCSRequestGroup requestGroup,其中requestGroup.condition=\'waitingstarttime\'order by RAND()”).List();
这可能是在试图找出当前Hibernate会话中所有条件为'WaitingStartTime'的CCSRequestGroup
让我头疼的是,“条件”是CCSReleaseCandicates的成员,而不是CCSRequestGroup,那么我们如何才能成功地获得CCSRequestGroup实例的条件成员
有人能帮帮我吗?我想,如果打开SQL日志记录,您会看到,您认为简单的语句实际上是在幕后与子类表进行外部联接。这就是为什么Hibernate可以使用数据,HQL本身可能利用隐式多态性向您返回正确的结果。我想,如果打开SQL日志记录,您会看到,您认为简单的语句实际上是在幕后与子类表进行外部连接。这就是为什么Hibernate可以使用数据,HQL本身可能利用隐式多态性向您返回正确的结果。为了赢得声誉,让别人回答您的问题,接受您问题的正确答案。为了赢得声誉,让别人回答您的问题,接受你问题的正确答案。