Как избежать Hibernate генерировать два запроса для обновления с OneTomany?JAVA

Программисты JAVA общаются здесь
Anonymous
Как избежать Hibernate генерировать два запроса для обновления с OneTomany?

Сообщение Anonymous »

Я сталкиваюсь с той же ситуацией, что и в этом вопросе, у которого нет полезного ответа. Разве идентификатор родителя не установлен во вставке?
Есть ли способ избежать этого? < /P>

Hibernate:
/* insert mydomain.LanguageKnowledge */
insert
into
languageKnowledge
(language_fk, level_fk, personId_fk)
values
(?, ?, ?)
Hibernate:
/* create one-to-many row mydomain.Person.offeredLanguages */
update
languageKnowledge
set
personId_fk=?
where
id=?

public class LanguageKnowledge {

@Id
@GeneratedValue(strategy = IDENTITY)
private Integer id;

@Enumerated(STRING)
@Column(name = "language_fk")
private LanguageIso639_3 language;

@Enumerated(STRING)
@Column(name = "level_fk")
private LanguageLevel level;

protected LanguageKnowledge() {
}
}

public class Person {

@Id
@GeneratedValue(strategy = IDENTITY)
private Integer id;

@OneToMany(fetch = EAGER, cascade = {ALL}, orphanRemoval = true)
@JoinColumn(name = "personId_fk", referencedColumnName = "id", nullable = false)
private final Set offeredLanguages = new HashSet();

public Person(Set offeredLanguages) {
addOfferedLanguages(offeredLanguages);
}

protected Person() {
}

public void addOfferedLanguages(Set offeredLanguages) {
this.offeredLanguages.addAll(offeredLanguages);
}

public void removeOfferedLanguages(Set offeredLanguagesToRemove) {
this.offeredLanguages.removeAll(offeredLanguagesToRemove);
}
}


Подробнее здесь: https://stackoverflow.com/questions/352 ... -onetomany

Вернуться в «JAVA»