Spring boot 在SpringJPA中,我们如何为XML文件或像ibatis这样的bean.XML查询来源?
我有一个用例,我希望我的应用程序更具属性驱动性和可配置性,这样数据库列名中的任何更改都不会影响相同的属性。Spring boot 在SpringJPA中,我们如何为XML文件或像ibatis这样的bean.XML查询来源?,spring-boot,jpa,spring-data-jpa,Spring Boot,Jpa,Spring Data Jpa,我有一个用例,我希望我的应用程序更具属性驱动性和可配置性,这样数据库列名中的任何更改都不会影响相同的属性。 因此,在Spring JPA中,我们如何为XML文件或像ibatis这样的bean.XML查询源代码?JPA可以使用XML来进行映射,而不是注释 默认文件名为orm.xml,如果您将此文件添加到META-INF目录,Spring Data JPA将默认加载它 您还可以指定具有以下属性的文件: spring.jpa.orm=orm.xml xml具有与注释相同的功能 以下是一个例子: &l
因此,在Spring JPA中,我们如何为XML文件或像ibatis这样的bean.XML查询源代码?JPA可以使用XML来进行映射,而不是注释 默认文件名为
orm.xml
,如果您将此文件添加到META-INF目录,Spring Data JPA将默认加载它
您还可以指定具有以下属性的文件:
spring.jpa.orm=orm.xml
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>
从书本中选择*
从书中选择*其中id=:id
JPA可以使用XML代替注释来进行映射
默认文件名为orm.xml
,如果您将此文件添加到META-INF目录,Spring Data JPA将默认加载它
您还可以指定具有以下属性的文件:
spring.jpa.orm=orm.xml
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>
从书本中选择*
从书中选择*其中id=:id