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