Hibernate: More than one row with the given identifier was found error

前端 未结 10 904
有刺的猬
有刺的猬 2020-12-01 01:20

I\'m using spring 4.0.5 and hibernate 4.3.5; I\'m facing an error with hibernate and I can\'t figure where I\'m wrong (because I\'m sure I\'m wrong). I have a table related

10条回答
  •  北海茫月
    2020-12-01 02:00

    I'm sorry; it was my mistake......in my entity class I wrongly mapped a relation as oneToOne; it was, instead, oneToMany :) Now all works pretty good.....; this is my new entity class:

    @DynamicUpdate
    @Cache(region = "it.eng.angelo.spring.dao.hibernate.models.MediaGalleryTree", usage = CacheConcurrencyStrategy.READ_WRITE)
    @Entity
    @Table(name = "MEDIA_GALL_TREE", indexes = {@Index(name = "NOME_FOLDER_IDX", columnList = "NOME_FOLDER")})
    public class MediaGalleryTree extends AbstractModel
    {
    
        private static final long serialVersionUID = -4572195412018767502L;
        private long id;
        private String text;
        private boolean opened;
        private boolean disabled;
        private boolean selected;
        private Set children = new HashSet(0);
        private Set media = new HashSet(0);
        private MediaGalleryTree father;
        private WcmDomain dominio;
        public MediaGalleryTree()
        {
            super();
        }
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "ID_FOLDER", unique = true, nullable = false)
        public long getId()
        {
            return id;
        }
        public void setId(long id)
        {
            this.id = id;
        }
        @Column(name = "NOME_FOLDER", nullable = false, unique=false)
        public String getText()
        {
            return text;
        }
        public void setText(String text)
        {
            this.text = text;
        }
        @Column(name = "OPENED_FOLDER")
        public boolean isOpened()
        {
            return opened;
        }
        public void setOpened(boolean opened)
        {
            this.opened = opened;
        }
        @Column(name = "DISABLED_FOLDER")
        public boolean isDisabled()
        {
            return disabled;
        }
        public void setDisabled(boolean disabled)
        {
            this.disabled = disabled;
        }
        @Column(name = "SELECTED_FOLDER")
        public boolean isSelected()
        {
            return selected;
        }
        public void setSelected(boolean selected)
        {
            this.selected = selected;
        }
        @OneToMany( mappedBy = "father", orphanRemoval = true, 
                    targetEntity = MediaGalleryTree.class)
        public Set getChildren()
        {
            return children;
        }
        public void setChildren(Set children)
        {
            this.children = children;
        }
        @ManyToOne(targetEntity = MediaGalleryTree.class)
        @JoinColumn(name = "ID_PADRE", nullable = true)
        public MediaGalleryTree getFather()
        {
            return father;
        }
        public void setFather(MediaGalleryTree father)
        {
            this.father = father;
        }
        @ManyToOne(targetEntity = WcmDomain.class, cascade={CascadeType.ALL})
        @JoinColumn(name="ID_DOMINIO", nullable=false)
        public WcmDomain getDominio()
        {
            return dominio;
        }
        public void setDominio(WcmDomain dominio)
        {
            this.dominio = dominio;
        }
        @OneToMany( mappedBy = "folder", orphanRemoval = true, 
                targetEntity = Media.class, cascade = { CascadeType.ALL })
        public Set getMedia()
        {
            return media;
        }
        public void setMedia(Set media)
        {
            this.media = media;
        }
    
    }
    

    Angelo

提交回复
热议问题