如果我想在我的 SQL Developer 中执行以检查它是否获取正确的数据,我很想知道这个查询是如何工作的。
当我开始调试我们的 java 代码时,我最终找到了在表中查找数据的查询,但是它的处理方式让我感到困惑。谁能解释我的逻辑?如果我想在数据库客户端中执行,谁能告诉我我的 SQL 查询是什么?
select distinct pA.id
from CHECK_TABLE pA
left join pA.node node
left join pA.kms km
where 1=1
POJO的
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_TABLE 保存除 XXNode、Akm 之外的数据,它们通过外键约束连接。