在使用Hibernate:Mutiny运行[Select]查询后,我需要转换得到的结果,但我不知道如何给结果一个类型。当我收到列表时,我会得到一个list,当试图映射这些结果时,我无法访问特定的属性,因为它们只是java.lang.Object的无形内容。
因为这只是组织我的数据的一种方式,我需要我的“视图”
不
作为一个实体(这么说,正如我所看到的解决方案
强迫
您只能在Entity类上使用它)。
sessionFactory.withSession(
session -> session.createNativeQuery(myQuery)
.getResultList().map(MyListView::ProcessData);
我收到此列表的位置:
public class MyListView{
private List<MyIndividualView> items;
public static MyListView processResults(List<Object> results){
// Transform data.
}
}
List似乎包含Object实例,试图将这类功能通常返回的类(如JsonObject、Map或Row)强制转换为类时抛出ClassCastException。
我发现了另一个类似的StackOverflow条目(将在下面添加链接),但他们通过将查询“展开”到一个“转换器”来映射它来解决它:
query.unwrap(SQLQuery.class)
.addScalar("total", LongType.INSTANCE)
.addScalar("amountOfSales", LongType.INSTANCE)
.addScalar("amountOfProducts", LongType.INSTANCE)
.setResultTransformer(Transformers.aliasToBean(SaleStatsInfo.class));
我无法访问
打开…的包装
方法也许这是一种不同的依赖性或其他什么,我真的不知道,这不是一个选项,因为我现在正在使用它。
知道怎么解决这个问题吗?
感谢您的阅读。
我所指的链接:
createNativeQuery mapping to POJO (non-entity)