我有两个数据库表,想使用 Hibernate 在两者之间建立多对一关系。
我没有构建这两个表,但在我开始项目时已经制作好了。我是 Hibernate 的新手,想在两个表之间建立多对一关系。
这通常会很困难,但是两个表之间的链接,“Praxiscode”不是主键,我想做类似的事情
@ManyToOne(targetEntity = PraxisIITest.class)
@Fetch(FetchMode.JOIN)
@NotFound(action = NotFoundAction.IGNORE)
@Formula(value = "(SELECT praxis.ID FROM lstPraxis praxis where praxis.Praxiscode=Praxiscode and Testdate BETWEEN praxis.BeginDate AND praxis.EndDate)")
private PraxisIITest praxisIITest;
但是在指定上述@Formula 时,它会引发异常,抱怨列不在“字段列表”中
org.hibernate.exception.SQLGrammarException: Unknown column 'praxisiite1_.praxisIITest_ID' in 'field list'
org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)
这是在 PraxisIITest 中指定 ID 的地方 ->
@Entity
@Table(name="lstPraxis")
@Cache(region="edu.uky.cepis.cache.praxisIItest", usage=CacheConcurrencyStrategy.READ_WRITE)
public class PraxisIITest implements java.util.Comparator<PraxisIITest>, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
private long id;
我对这一切都错了吗?还是我错过了一些非常基本的东西,我的理解是这应该有效......
非常感谢任何想法或建议!再次提前感谢!