获取数据的SQL查询代码背后的java逻辑?
如果我想在我的SQL开发人员中执行该查询以检查它是否获取正确的数据,那么我很想知道该查询是如何工作的
当我开始调试java代码时,我最终找到了在表中查找数据的查询,但它的处理方式让我感到困惑。谁能给我解释一下逻辑吗?还有,如果我想在数据库客户机中执行SQL查询,有人能告诉我什么是SQL查询吗
select distinct pA.id
from CHECK_TABLE pA
left join pA.node node
left join pA.kms km
where 1=1
波乔氏
public class CHECK_TABLE implements XXXDataObject
{
private long id = 0;
private String name = null;
private XXNode node = null;
private List<Akm> kms = null;
public long getId()
{
return id;
}
public void setId( long id )
{
this.id = id;
}
.....
.....
public XXNode getNode()
{
return node;
}
public void setNode( XXNode node )
{
this.node = node;
}
@ManyToMany( cascade = { CascadeType.PERSIST, CascadeType.MERGE }, targetEntity = com.XXXXXXXXXX.Akm.class )
@JoinTable( name = "TABLE_KM", joinColumns = { @JoinColumn( name = "TABLE_ID" ) }, inverseJoinColumns = { @JoinColumn( name = "KM_ID" ) } )
public List<Akm> getKms()
{
return kms;
}
public void setKms( List<Akm> kms )
{
this.kms = kms;
}
}
我在我的数据库中看到了CHECK_TABLE、XXNode、Akm的对应表。然而,CHECK_表保存除XXNode、Akm以外的数据,这些数据通过外键约束连接
# 1 楼答案
查询可以简化为
它转换为以下SQL查询:
要了解HQL查询如何转换为SQL,只需在Hibernate中启用SQL日志,然后查看Hibernate日志。这可以通过在配置文件中将hibernate.show_sql property设置为true来实现