Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
Java 带Hibernate的JPA-序列不使用XML_Java_Xml_Oracle_Hibernate_Jpa - Fatal编程技术网

Java 带Hibernate的JPA-序列不使用XML

Java 带Hibernate的JPA-序列不使用XML,java,xml,oracle,hibernate,jpa,Java,Xml,Oracle,Hibernate,Jpa,我第一次将JPA与Hibernate结合使用,并尝试使用Oracle数据库中的现有序列设置自动ID生成 我的实体映射如下所示: <?xml version="1.0" encoding="UTF-8"?> <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" version="2.0"> <entity class="AmmAdapter.DataAccess

我第一次将JPA与Hibernate结合使用,并尝试使用Oracle数据库中的现有序列设置自动ID生成

我的实体映射如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
        version="2.0">

    <entity class="AmmAdapter.DataAccessLayer.Models.AmmSyncTypePriorities">
        <table name="AMM_SYNC_TYPE_PRIORITIES" schema="TESTESTERON" catalog=""/>
        <attributes>
            <id name="id">
                <column name="ID" nullable="false" length="10"/>
                <generated-value strategy="SEQUENCE" generator="MODEL_SEQ"/>
                <sequence-generator name="MODEL_SEQ" sequence-name="AMM_ED_GROUP_TYPES_SEQ"/>
            </id>
            <basic name="priority">
                <column name="PRIORITY" nullable="false" length="10"/>
            </basic>
            <one-to-many name="ammSyncMessageTypesesById" mapped-by="ammSyncTypePrioritiesByPriority"
                         target-entity="AmmAdapter.DataAccessLayer.Models.AmmSyncMessageTypes"/>
        </attributes>
    </entity>
</entity-mappings>

结果我得到一个空ID。有人知道问题出在哪里吗

当你持久化对象时,将生成Id。谢谢你的回答,但我在发布此问题之前已经尝试过了。我从您的代码中发现以下错误:在调用save()之前,必须手动分配此类的ID。您知道如何解决此问题吗?:)XML定义了
的实体,而测试的类是
AmmEdGroupTypes
。您是否有
AmmEdGroupTypes
的实体定义?答案已接受。我很乐意投赞成票,但我似乎没有这方面的声誉/
EntityManager entityManager = entityManagerFactory.createEntityManager();

entityManager.getTransaction().begin();

AmmEdGroupTypes newGroup = new AmmEdGroupTypes();
newGroup.setName("test");
entityManager.persist(newGroup);
entityManager.getTransaction().commit();
System.out.println(newGroup.getId());
EntityManager entityManager = entityManagerFactory.createEntityManager();

entityManager.getTransaction().begin();

AmmEdGroupTypes newGroup = new AmmEdGroupTypes();
newGroup.setName("test");

System.out.println(newGroup.getId());
EntityManager entityManager = entityManagerFactory.createEntityManager();

entityManager.getTransaction().begin();

AmmEdGroupTypes newGroup = new AmmEdGroupTypes();
newGroup.setName("test");
entityManager.persist(newGroup);
entityManager.getTransaction().commit();
System.out.println(newGroup.getId());