Код: Выделить всё
public class PersonPreference {
@Id
private Long id;
@EntityId(value = Person.class, defer = false)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PERSON", nullable = false, insertable = true, updatable = false)
@SensitiveData
private Person person;
}
public class Person {
@Id
@GeneratedValue(generator = MY_SEQUENCE_GENERATOR_NAME, strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = MY_SEQUENCE_GENERATOR_NAME, sequenceName = MY_SEQUENCE_GENERATOR_NAME, allocationSize = 1)
private Long id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "person")
private List
personPreferences = new ArrayList(0);
}
Мой вариант использования заключается в том, что Person уже существует в базе данных, и я сохраняю PersonPreference.
Код: Выделить всё
Patient existingPerson = EM.find(Person.class, personId);
personPreference.setPerson(existingPerson);
EM.persist(personPreference);
EM.flush();
- Вставке в Person_Preference
- Вставке в Z_Person_Preference (таблица аудита)
- Вставить в Z_Person (таблица аудита)
Как остановить вставку номер 3?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -hibernate