gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:55:37 28 4
gpt4 key购买 nike

我在 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)));

}

问题是:此代码返回我表的所有问题。

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

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

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

最佳答案

  • 老问题,但如果有人跨过这个 -

Query.select() 并不意味着将纯 SQL 放入。它更像是一个创建“数据库独立”查询的构建器。在此处查看一些示例:Finding entities

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);
}

这就是为什么有另一种方法(您在评论中使用过)可以处理纯 SQL (findWithSQL)。

注意 Queryfind() 通常不会按预期工作,因此您可能无法使用查询构建器使原始查询正常工作。

关于java - 如何使用net.java.ao.Query查询问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32738829/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com