0
我是Hibernate的新手,希望實現hibernate標準或hql來查詢多個表以獲得結果,我有問題要做。 現在我是使用本地SQL休眠來完成我需要,但想嘗試與HQL /標準相同.. 下面是我用得到的結果本地查詢..Hibernate使用標準或hql查詢/實現多個表
select table1.dmname,table2.polname,table3.path,table4.uidname
from table1,table2,table3,table4
where table3.dmnid = table1.dmnid
and table3.polid = table2.polid
and table3.3.uid = table4.uid
下面
是我的實體POJO類
表1:
@Entity
@Table(name = "table1", uniqueConstraints = @UniqueConstraint(columnNames = "dmname"))
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY,region="domain")
public class table1 {
private String dmnid;
private String dmnname;
@Id
@Column(name = "dmnid", unique = true, nullable = false)
public String getDmnid() {
return this.dmnid;
}
public void setDmnid(String dmnid) {
this.dmnid = dmnid;
}
@Column(name = "dmnname", unique = true, nullable = false)
public String getDmnname() {
return this.dmnname;
}
public void setDmnname(String dmnname) {
this.dmnname = dmnname;
}
表2:
@Entity
@Table(name = "table2", uniqueConstraints = @UniqueConstraint(columnNames = {
"dmnname", "polname" }))
public class table2 implements java.io.Serializable {
private String dmnname;
private String polid;
private String polname;
// getters and setter
表3:
@Entity
@Table(name = "table3")
public class table3 implements java.io.Serializable {
private String dmnname;
private String polid;
private String uid;
private String path;
// getters and setters
表4:
@Entity
@Table(name = "table4", uniqueConstraints = @UniqueConstraint(columnNames = "uidname"))
public class table4 implements java.io.Serializable {
private String uid;
private String uidname;
// getters and setters
我還沒有實現出來的表之間的映射在POJO類還和我很難理解這一點.. so co從社區的任何幫助救出我.. 感謝您查看此和任何幫助將不勝感激..
感謝烏代......我想通了,用HQL做的(雖然它的直接連接雖然)..但不能夠做到這一標準,爲此我想我可能需要實現實體類中的表之間的關係權。 – marc
嗯,不一定,但它取決於你想要做什麼。你可以使用'DetachedCriteria'而不需要實體之間的關係,但是,這將會像一個子查詢。定義關係將是理想的。關於HQL與Criteria,Criteria是一個優雅的HQL類型安全替代方案,在大多數情況下對於動態查詢來說更好。但是,有些情況下,由於性能原因和標準限制,HQL優先於標準。希望有所幫助! – YuVi