java – 当我的项目中没有任何实体时,如何将本机查询映射到POJO?

前端之家收集整理的这篇文章主要介绍了java – 当我的项目中没有任何实体时,如何将本机查询映射到POJO?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在将ETL过程从工具转换为Java批处理API应用程序.在这个ETL过程中.在当前版本(使用该工具)中,我们有许多连接不同表的sql语句,以便生成所需的输出.现在可以转换为Java,JPA.

我想使用本机查询.这样会很好,因为它不需要为查询中使用的每个表创建实体,我可以使用POJO来查询结果(我也不需要重写查询).阅读this answer我知道我可以使用@sqlResultSetMapping.问题是我的项目中没有任何实体,所以我不知道在哪里放这个注释.我可以在任何地方放置这个注释,以便实体经理找到它吗?

PS:在我的概念证明中,我目前正手动从一组对象转换为POJO,但我真的不喜欢这种方法.

将@Entity注释添加到POJO将导致我的应用程序无法启动:

Caused by: org.hibernate.HibernateException: Missing table: MyTable

我不确定(现在正在搜索它),但我认为它可能是由我的persistence.xml中的这个属性引起的

最佳答案
其实我找到了answer I was looking for

我可以在orm.xml中使用XML定义@ sqlResultSetMapping的行为,所以这个定义:

@sqlResultSetMapping(
        name = "BookValueMapping",classes = @ConstructorResult(
                targetClass = BookValue.class,columns = {
                    @ColumnResult(name = "id",type = Long.class),@ColumnResult(name = "title"),@ColumnResult(name = "version",@ColumnResult(name = "authorName")}))

将在XML中定义如下:

<sql-result-set-mapping name="BookValueMappingXml">
    sql-result-set-mapping>

允许我在不需要实体的情况下定义它.

原文链接:https://www.f2er.com/mysql/433809.html

猜你在找的MySQL相关文章