如何使用net.java.ao.Query查询问题?
我在PostgreSQL中有以下选择:如何使用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;
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);
}