Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 如何在SpringBoot项目中用文件配置(使用XML)替换注释_Hibernate_Jpa_Spring Boot - Fatal编程技术网

Hibernate 如何在SpringBoot项目中用文件配置(使用XML)替换注释

Hibernate 如何在SpringBoot项目中用文件配置(使用XML)替换注释,hibernate,jpa,spring-boot,Hibernate,Jpa,Spring Boot,我想用一个配置文件(也是存储库文件中的查询)替换JPA和hibernate的注释(@Entity、@Table、@Id、@GenratedValue,…),但我不知道怎么做,我知道的是我需要另一个XML格式的配置文件(application.properties除外),我的问题是我在哪里创建这个文件?它的内容是什么 非常感谢你回复我 现在,我的项目如下所示: 这是我的orm.xml文件: <entity-mappings> <entity class="org.si

我想用一个配置文件(也是存储库文件中的查询)替换JPA和hibernate的注释(@Entity、@Table、@Id、@GenratedValue,…),但我不知道怎么做,我知道的是我需要另一个XML格式的配置文件(application.properties除外),我的问题是我在哪里创建这个文件?它的内容是什么


非常感谢你回复我

现在,我的项目如下所示:

这是我的orm.xml文件:

<entity-mappings>
    <entity class="org.sid.dao.entity.Etudiant">
        <table name="etudiants">
            <attributes>
                <id name="id">
                    <genrated-value strategy="AUTO"></genrated-value>
                </id>
                <basic name="nom"></basic>
                <basic name="prenom"></basic>
                <many-to-one>
                    <Join-column name="id_formation">
                        <basic name="formation"></basic>
                    </Join-column>
                </many-to-one>
            </attributes>
        </table>
    </entity>
    <entity class="org.sid.dao.entity.Formation">
        <table name="formations">
            <attributes>
                <id name="id">
                    <genrated-value strategy="AUTO"></genrated-value>
                </id>
                <basic name="nom"></basic>
                <basic name="duree"></basic>
                <one-to-many mappedby="formation" fetch="lazy">
                    <basic name="etudiants"></basic>
                </one-to-many>
            </attributes>
        </table>
    </entity>
</entity-mappings>


但是JPA不会在数据库中创建表,我应该怎么做?

JPA规范要求XML映射位于类路径上:

可以指定名为orm.XML的对象/关系映射XML文件 在持久化单元根目录的META-INF目录中或 用户引用的任何jar文件的META-INF目录 persistence.xml

或者,或者另外,可以创建一个或多个映射文件 由持久性单元的映射文件元素引用 元素。这些映射文件可能存在于类的任何位置 路径。-JPA 2.1规范第8.2.1.6.2节

请查看Hibernate文档:


当您已经使用Spring Boot时,您为什么要这样做?请不要这样做。我只想知道一个新的方法来做,而且当我们将配置从类中分离出来,看起来很容易维护时,有人知道如何做吗?JPA文档广泛可用,有些人给出了注释的等效XML示例,比如这个问题是:在spring boot项目中没有一个名为META-INF的目录我知道在JAR或WAR文件中有一个名为META-INF的目录,但orm.XML文件是在构建时调用的,在生成JAR/WAR之后,无法复制META-INF目录中的文件,所以我现在可以做什么??谢谢您的回复。只需将此目录添加到src/main/resources即可