Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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/2/spring/12.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/3/reactjs/27.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 5迁移和实体合并_Java_Spring_Hibernate_Jpa_Merge - Fatal编程技术网

Java Hibernate 5迁移和实体合并

Java Hibernate 5迁移和实体合并,java,spring,hibernate,jpa,merge,Java,Spring,Hibernate,Jpa,Merge,我正在尝试使用SpringBoot1.4.3和Spring4.3.4从Hibernate4.3.10升级到Hibernate5.0.12。我能够解决命名问题(至少我希望如此),但现在我被困在“合并”中,合并由于某些原因无法工作。我有一段代码: DeviceEntity entity = entityManager.find(DeviceEntity.class, device.getId()); GroupEntity groupEntity = entityManager.find(Group

我正在尝试使用SpringBoot1.4.3和Spring4.3.4从Hibernate4.3.10升级到Hibernate5.0.12。我能够解决命名问题(至少我希望如此),但现在我被困在“合并”中,合并由于某些原因无法工作。我有一段代码:

DeviceEntity entity = entityManager.find(DeviceEntity.class, device.getId());
GroupEntity groupEntity = entityManager.find(GroupEntity.class, group.getId());

entity.getGroups().add(groupEntity);
groupEntity.getDevices().add(entity);

entityManager.merge(groupEntity);
groupEntity
find()之后不包含任何设备,然后我将设备添加到组中。调用merge后,不会保存任何内容。这在4.3.4中起作用。GroupEntity.devices的映射如下所示:

@ManyToMany(mappedBy="groups")
private Set<DeviceEntity> devices = new HashSet<>();
@ManyToMany
@JoinTable(name="T_DEVICE_GROUPS", joinColumns = {
        @JoinColumn(name="DEVICE_ID", referencedColumnName="id")},
        inverseJoinColumns = {@JoinColumn(name="GROUP_ID", referencedColumnName="id")}
)
private Set<GroupEntity> groups = new HashSet<GroupEntity>();
persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="manager1" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    ....classes....
<validation-mode>AUTO</validation-mode>
</persistence-unit>
</persistence>

org.hibernate.jpa.HibernatePersistenceProvider
……课程。。。。
自动的

代码运行的服务被标记为
@Transactional(rollboor=someException.java)

您是否正确应用了事务?您是否在两侧都尝试了
@manytomy(cascade=CascadeType.MERGE)
?我更新了问题。这里有@Transactional。在其他方法中为该设备实体创建操作有效。您正在使用Spring引导。。。那么为什么要使用xml呢?@Babl我已经尝试过(甚至认为它可以与较旧的hibernate一起使用),但没有成功。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="manager1" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    ....classes....
<validation-mode>AUTO</validation-mode>
</persistence-unit>
</persistence>