1
我有使用Hibernate的錯誤/ HQL休眠選擇錯誤的內連接
我的表是表1(ID,數據),其中id - >主鍵和表2(ID,anotherdata),其中id - >對table1.id的外鍵引用。
第一類 - >
@Entity
@Table(name = "table1")
public class Table1 {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "data")
private String data;
@OneToOne
private Table2 table2;
//construct, get, set
}
第二類 - >
@Entity
@Table(name = "table2")
public class Table2 {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "anotherdata")
private String data;
//get, set, construct
}
HQL查詢是SELECT t1.id,t1.data,t2.data FROM表1爲t1 JOIN t1.table2 as t2
Hibernate日誌:select t1.id,t1.data,t2.anotherdata from table1 t1 inner join table2 on t1.t2_id = t2.id
這個原因錯誤錯誤:列t1.t2__id並不在此聲明的 「關於t1.t2_id = t2.id」到底存在
我應該有「上t1.id = t2.id「(純sql)
我該如何解決這個問題?將感謝你的答案!
感謝。它的工作原理,但現在我得到了列表列表中的ClassCastException list = session.createQuery(「SELECT t1.id,t1.data,t2.data FROM Table1 as t1 JOIN t1.table2 as t2」)。list() ; ** –
PS。解決了它。我的HQL返回列表