如何使用net.java.ao.Query查询问题?

如何使用net.java.ao.Query查询问题?,java,postgresql,Java,Postgresql,我在PostgreSQL中有以下选择: SELECT "field_1", "field_2","field_3", MIN(COALESCE(NULLIF("field_4",'') ,'TBD')) MINDP,MIN("field_5") MINBOD FROM "MY_TABLE" GROUP BY "field_1", "field_2","field_3" 我想使用net.java.ao.Query来查询我的数据库。我的职能: import net.java.ao.Query;

我在PostgreSQL中有以下选择:

SELECT "field_1", "field_2","field_3", MIN(COALESCE(NULLIF("field_4",'') ,'TBD')) MINDP,MIN("field_5") MINBOD FROM "MY_TABLE" GROUP BY "field_1", "field_2","field_3"
我想使用net.java.ao.Query来查询我的数据库。我的职能:

import net.java.ao.Query;

    public List<myClass> find() {

        String SQL = "SELECT \"field_1\", \"field_2\",\"field_3\", MIN(COALESCE(NULLIF(\"field_4\",'') ,'TBD')) MINDP,MIN(\"field_5\") MINBOD FROM \"MY_TABLE\" GROUP BY \"field_1\", \"field_2\",\"field_3\""

        return newArrayList(ao.find(myClass.class, Query.select(SQL)));

    }
import net.java.ao.Query;
公共列表查找(){
字符串SQL=“选择\“字段1\”、\“字段2\”、\“字段3\”、最小值(合并(NULLIF(\“字段4\”、“”)、“待定”))MINDP、最小值(\“字段5\”)来自“我的字段表”分组的最小值由“字段1\”、“字段2\”、“字段3\”
返回newArrayList(ao.find(myClass.class,Query.select(SQL));
}
问题是:这段代码返回我的表的所有问题

当我在postgreSQL控制台中运行此SQL时,它工作正常

我的代码与SQL控制台的结果不同

有人知道为什么会这样吗?

  • 老问题,但如果有人跨过这一步-
Query.select()
并不意味着将普通的
SQL
放入。创建“数据库独立”查询更像是一个构建器。请参见此处的一些示例:

这就是为什么还有另一种方法(您在评论中使用了这种方法)可以处理普通SQL(
findWithSQL

注意
Query
find()
通常无法按预期工作,因此您可能无法使用查询生成器使原始查询正常工作。

  • 老问题,但如果有人跨过这一步-
Query.select()
并不意味着将普通的
SQL
放入。创建“数据库独立”查询更像是一个构建器。请参见此处的一些示例:

这就是为什么还有另一种方法(您在评论中使用了这种方法)可以处理普通SQL(
findWithSQL


注意
Query
find();但我仍然想知道为什么这不起作用,实际上我把代码改为:returnnewarraylist(ao.findWithSQL(myClass.class,“ANY_INT_column_inRESULT”,SQL));它成功了:)但我仍然想知道为什么这不起作用
public MyEntity[] findMyEntities(String fieldValue) {
    final Query query = Query.select()
            .where("FIELD_VALUE = ?", fieldValue);
    // evaluates to something like this
    // SELECT * FROM MY_ENTITY WHERE FIELD_VALUE = x;
    return ao.find(MyEntity.class, query);
}