首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Jpa存储库- Orm.xml

Spring Jpa存储库- Orm.xml
EN

Stack Overflow用户
提问于 2018-06-20 17:44:19
回答 1查看 1.2K关注 0票数 1

我正在使用Spring Jpa存储库。

我不想在java类(实体或存储库)中定义我的“命名查询”。我想在不同的xml文件(如orm.xml)中定义我的“命名查询”。

代码语言:javascript
复制
.... XML FILE ....
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1" 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_1.xsd">

   <named-query name="MyEntity.findByField1">
      <query>
        <![CDATA[
        SELECT m
        FROM MyEntity m
        WHERE
            m.field1 = :field1
                    ]]>
      </query>
   </named-query>                                 
</entity-mappings>



.... REPOSITORY CODE ....
public interface MyEntityRepository extends JpaRepository<MyEntity, String>
{
   public Optional<MyEntity> findByField1(@Param("field1") String field1);
}

但是我的存储库不能通过我的命名查询找到xml文件。如何配置spring-data-jpa以使用这些xml文件?我没有persistence.xml。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-06-20 17:55:32

因为MyEntity内部已经有了field1属性,所以使用findByField1作为存储库方法名可能会让人感到困惑。按如下所示更改orm.xml,并将其放入META-INF/orm.xml中

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1" 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_1.xsd">

   <named-query name="MyEntity.findByField1OrmXml">
      <query>
        <![CDATA[
        SELECT m
        FROM MyEntity m
        WHERE
            m.field1 = :field1
                    ]]>
      </query>
   </named-query>                                 
</entity-mappings>

并更改存储库,如下所示

代码语言:javascript
复制
public interface MyEntityRepository extends JpaRepository<MyEntity, String>
{
   public Optional<MyEntity> findByField1OrmXml(@Param("field1") String field1);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50945121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档