我有一个用例,我希望我的应用程序具有更多的属性驱动和可配置性,以便数据库列名称的任何更改都不会影响相同。 因此,在Spring JPA中,我们如何像ibatis一样查询XML文件或bean.xml?
答案 0 :(得分:2)
JPA可以使用XML来代替注释。
默认文件名为orm.xml
,如果将此文件添加到META-INF目录,Spring Data JPA将默认加载它。
您还可以使用属性指定文件:
spring.jpa.orm=orm.xml
orm.xml具有与注释相同的功能。
这里是一个例子:
<?xml version="1.0" encoding="UTF-8" ?>
<entity-mappings xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm
http://xmlns.jcp.org/xml/ns/persistence/orm_2_0.xsd" version="2.1">
<!-- JPA Named Native Queries -->
<named-native-query name="Book.findAll" result-class="com.memorynotfound.hibernate.Book">
<query>SELECT * FROM Book</query>
</named-native-query>
<named-native-query name="Book.findById" result-class="com.memorynotfound.hibernate.Book">
<query>SELECT * FROM Book WHERE id = :id</query>
</named-native-query>
<!-- entity mapping -->
<entity class="com.memorynotfound.hibernate.Book">
<attributes>
<basic name="title"/>
</attributes>
</entity>
</entity-mappings>
在Hibernate官方文档中找到有关XML映射的更多信息: