我正在尝试使用Hibernate的SELECT * REPLACE(
ARRAY(
SELECT EXTRACT(DATE FROM curr_dt) FROM t.curr_dt
) AS curr_dt)
FROM test.date_table t
方法执行SQL查询。
session.createSQLQuery()
表有3列:
工作
test
不工作
String sql = "SELECT * FROM test";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Test.class);
List<Test> testEntityList = query.list();
错误:
在此ResultSet中找不到列col3。
我只需要从表中检索几个特定列而不是整个表。
我怎样才能做到这一点?
答案 0 :(得分:0)
您可以使用休眠投影,请参阅此答案Hibernate Criteria Query to get specific columns,或者您可以通过将返回类型更改为
来执行此操作 List<Object[]>
并将其解析为List<Test>
List<Object[]> testEntityList = query.list();
List<Test> res = new ArrayList<Test>(testEntityList.size());
for (Object[] obj : testEntityList) {
Test test = new Test();
test.setCol1(obj[0]);
test.setCol2(obj[1]);
res.add(test);
}