将实体保存到数据库时出现以下问题。我使用hibernate和postgresql
java.lang.IllegalStateException: Error occurred while storing entity [chart]. An entity copy [de.enwida.web.model.user.Role#2] was already assigned to a different entity [chart].
at org.hibernate.event.internal.EventCache.put(EventCache.java:192)
at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:285)
at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:151)
at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:924)
at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:906)
我注意到的是,如果我使用insert命令填充DB,通常代码会起作用 但是当我用
等COPY命令填充它时它不起作用copy users.groups from '/home/tarazano/Downloads/server/users.groups.csv';
我的代码是这样的
// Modify user's set of groups
final Set<Group> groups = new HashSet<Group>(user.getGroups());
groups.add(group);
user.setGroups(groups);
userDao.update(user, true); // with flush
我认为问题是复制命令。当我手动复制表内容时,不会生成某些内容?也许指数?
请帮助我,我已经花了很多时间在这个
上答案 0 :(得分:0)
我仍然不知道为什么它没有用,但我找到了解决方法。我只是使用了createNativeQuery方法entityManager
EntityManager em;
em.createNativeQuery(" INSERT INTO users.group_role(group_id, role_id) VALUES ("+group.getGroupID()+","+role.getRoleID()+")");