Why does Hibernate try to delete when I try to update/insert?

后端 未结 4 600
独厮守ぢ
独厮守ぢ 2020-12-08 01:44

In my app I have these Hibernate-mapped types (general case):

class RoleRule {
  private Role role;
  private PermissionAwareEntity entity; // hibernate-mapp         


        
4条回答
  •  伪装坚强ぢ
    2020-12-08 02:15

    Brian Deterling's answer helped me to overcome the phantom delete. I wish he had put a real code. Here is what I got from his suggestion 1. Posting for someone to use it or to comment my code.

    // snFile and task share many to many relationship
    
    @PersistenceContext
    private EntityManager em;
    
    public SnFile merge(SnFile snFile) {
            log.debug("Request to merge SnFile : {}", snFile);
    
            Set tasks = taskService.findBySnFilesId(snFile.getId());
            if(snFile.getTasks() != null) {
                snFile.getTasks().clear();
            }
            em.merge(snFile);
            em.flush();
            if(tasks != null) {
                if(snFile.getTasks() != null)
                    snFile.getTasks().addAll(tasks);
                else
                    snFile.setTasks(tasks);
            }
    
            return em.merge(snFile);
        }
    

提交回复
热议问题