gpt4 book ai didi

hibernate - 在 Hibernate 中使用 native-sql - 如何处理结果

转载 作者:行者123 更新时间:2023-12-02 22:59:21 25 4
gpt4 key购买 nike

我有几个表,我不能使用hibernate映射来定义关联(或者我不知道如何做)..所以我决定在尝试查询连接结果时使用nativesql..查询是像这样的东西..

 String sql = "SELECT p.lastName, p.firstName, p.middleName, p.deactivateDate, p.id, p.userId, p.userRole, TO_CHAR(MAX(au.timestamp),'MM/DD/YYYY') as \"last_Login\", ROUND(SYSDATE-MAX(au.timestamp))as \"days_Elapsed\" 
FROM LLPersonnel p LEFT OUTER JOIN LoginAudit au ON p.userId = au.userAccount AND UPPER(au.operation) = 'SUCCESS'"
WHERE p.deactivateDate is null AND p.userRole is not null GROUP BY p.lastName, p.firstName, p.middleName, p.deactivateDate, p.id, p.netId, p.llRole"
ORDER BY 1, 2, 3";

SQLQuery qry = sessionFactory.getCurrentSession().createSQLQuery(sql);
qry.list();

问题是 qry.list() 返回对象数组,我似乎无法将其转换为任何其他对象。我的意思是我已经使用这样的构造函数创建了一个虚拟对象..

DummyObject(姓氏、名字、中间名、停用日期、id、userId、userRole、last_Login、days_Elapsed)

并尝试将列表转换为..

列表 dummyList = Listqry.list();

但这不起作用..当我尝试从 dummyList 访问 DummyObject 时,出现 Cannot casr object to DummyObject 异常。

最佳答案

该代码应该返回一个 Object[] 列表。您可以创建一个类并调用 .addEntity(),它将为您填充实体。

或者,如果您愿意,您可以自己操作每一行的 Object[] 数组。如果您事先知道数据类型,则可以只区分字符串、整数等。

我经常这样做:

List<Object[]> list = (List<Object []>) q.list();
for (Object[] row : list) {
String lastName = (String) row[0];
...
}

关于hibernate - 在 Hibernate 中使用 native-sql - 如何处理结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004372/

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