有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

获取数据的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) 个答案

  1. # 1 楼答案

    查询可以简化为

    select distinct pA.id from CHECK_TABLE pA 
    

    它转换为以下SQL查询:

    select distinct pA.id from CHECK_TABLE pA 
    

    要了解HQL查询如何转换为SQL,只需在Hibernate中启用SQL日志,然后查看Hibernate日志。这可以通过在配置文件中将hibernate.show_sql property设置为true来实现