gpt4 book ai didi

sql-server - Grails-从SQL函数获取数据并将其映射到对象

转载 作者:行者123 更新时间:2023-12-02 15:05:37 25 4
gpt4 key购买 nike

我有一个MSSQL服务器和一个返回表值的函数。我想在我的Grails应用程序中使用它。有没有直接的方法可以做到这一点?

现在,我开始使用SQL查询。这是来自 Controller 的代码

final curSession = sessionFactory.currentSession
final String query = 'SELECT * FROM [dbo].[someFunction] (params here)'
final sqlQuery = curSession.createSQLQuery(query)
//sqlQuery.addEntity(oot.Foo.class)
final List<FooCommand> results = sqlQuery.list()
[results:results]

如果这样做,我会在 View 中收到没有任何列名的数组数组,并且使用它不太方便。
如果创建匹配选择并取消注释行 sqlQuery.addEntity(Foo.class)域类 Foo,我将得到我想要的,但是在这种情况下,grails将创建一个空表 dbo.foo,我想避免这种情况。

我发现Grails中有 命令对象,它几乎像domain一样,但是不创建基础表。听起来像我想要的。但是,当我使用Command类而不是Domain( sqlQuery.addEntity(oot.FooCommand.class))时,我收到了 MappingException
Unknown entity: oot.FooCommand. Stacktrace follows:
Message: Unknown entity: oot.FooCommand

最佳答案

当我们有类似的要求时,我们所做的是使用休眠AliasToBeanResultTransformer。

List resultWithAliasedBean = sqlQuery
.setResultTransformer(Transformers.aliasToBean(MyDTO.class))
.list();


MyDTOdto = (MyDTO)resultWithAliasedBean.get(0);

关于sql-server - Grails-从SQL函数获取数据并将其映射到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263312/

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