本机 SQL(用 xml 编写)结果集映射到 POJO(基于注释)
Posted
技术标签:
【中文标题】本机 SQL(用 xml 编写)结果集映射到 POJO(基于注释)【英文标题】:Native SQL(written in xml) result set mapping to POJO(annotation based) 【发布时间】:2018-06-26 07:11:22 【问题描述】:我正在开发一个 Spring MVC 遗留项目,目前,我们正在将 spring(2) 和 hibernate(2) 升级到最新版本。以前在项目中有 sql-query 和实体映射在 XML
文件中完成,我们正在将实体映射从 XML
升级到基于 annotation
。基于查询结果集完成的实体映射会出现问题。我只想将查询保留在 XML 文件中(因为这些是在 4-5 个表上执行连接的非常非常大的查询),并且只需更改实体映射。以前实体映射是这样完成的
<class name="ClassName" table="x" mutable="false">
<id name="id" column="id_col">
<generator class="assigned" />
</id>
<property name="linkId" ....
</class>
如何在基于注解的映射中注解table='x'
?
P.S table="x"
不是示例,它仅在 XML 映射中以这种方式编写,并且 DB 中没有名为 x 的表
【问题讨论】:
呃……@Table
?
不,没那么容易
您能否尝试添加更多上下文,因为目前还不是很清楚问题所在。映射实体时遇到什么麻烦?
它在运行时给了我空指针异常
抱歉,没有足够的信息来使用给定的信息修复 NPE
【参考方案1】:
你可以这样使用
@Entity
@Table(name = "X")
public class ClassName
在原生查询中在 xml 中
<sql-query name="findQuery">
<return alias="ClassName" class="ClassName"/>
select * from x
</sql-query>
【讨论】:
以上是关于本机 SQL(用 xml 编写)结果集映射到 POJO(基于注释)的主要内容,如果未能解决你的问题,请参考以下文章