Проблема генератора идентификаторов гибернации - PullRequest
0 голосов
/ 06 февраля 2019

У меня возникла особая проблема при попытке сохранить коллекцию объектов в режиме гибернации.Кажется, что когда у меня есть несколько объектов одного типа, hibernate не может сгенерировать идентификатор, поэтому я получаю org.hibernate.NonUniqueObjectException.

Пример:

App1 -> urls
{strApplicationId: 1; URLTypeEntity {strCode: 1, strDescription: Reply}, strURL: www.address1.com},
{strApplicationId: 1; URLTypeEntity {strCode: 1, strDescription: Reply}, strURL: www.address2.com},
{strApplicationId: 1; URLTypeEntity {strCode: 2, strDescription: Home}, strURL: www.address3.com}

Если у меня нет двух URL с одинаковым URLTypeEntity вколлекция, ошибка не вызывается

@Entity
@Table(name = "tbl_urls")
public class URLEntity
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="intCode")
    private Integer intCode;
    private String strApplicationID;
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "intType", referencedColumnName = "intCode")
    private URLTypeEntity objURLType;
    private String strURL;
}
@Entity
@Table(name = "tbl_applications")
public class ApplicationEntity
{
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "strApplicationID")
    private List<URLEntity> colURLs;
}

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Решением было изменение CascadeType с ALL на объединение, mappedBy = "strApplicationID")

0 голосов
/ 06 февраля 2019

ApplicationEntity также должен иметь идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...