加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2021-03-14 06:07:19 所属栏目:MySql教程 来源:网络整理
导读:我正在将ETL过程从工具转换为Java批处理API应用程序.在这个ETL过程中.在当前版本(使用该工具)中,我们有许多连接不同表的SQL语句,以便生成所需的输出.现在可以转换为Java,JPA. 我想使用本机查询.这样会很好,因为它不需要为查询中使用的每个表创建实体,我可

我正在将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中定义如下:

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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读