пишу Rest Web-сервис, Spring Boot+Hibernate+Postgres
, есть три сущности: класс А, В и А_В, ссылающийся на оба через ManyToOne
, связь onedirectional
. Надо записать А_В при этом автоматически создав А или В в одной транзакции. Это возможно вообще?
@Embeddable
class IdA {
String code; // code одинаков и для класса А, для В и для A_B
String nameA;
}
class A {
@EmbeddedId
IdA id;
}
@Embeddable
class IdB {
String code;
String nameB;
}
class B {
@EmbeddedId
IdB id;
}
@Embeddable
class IdA_B {
String code;
String nameA;
String name B;
LocalDate start;
}
class A_B {
@EmbeddedId
IdA_B id;
LocalDate end;
@ManyToOne
@JoinColumns({
@JoinColumn(name="code", referencedColumnName="code", insertable = false, updatable = false),
@JoinColumn(name="nameA", referencedColumnName="nameA", insertable = false, updatable = false)
})
A a;
@ManyToOne
@JoinColumns({
@JoinColumn(name="code", referencedColumnName="code", insertable = false, updatable = false),
@JoinColumn(name="nameB", referencedColumnName="nameB", insertable = false, updatable = false)
})
B b;
}
И хочу записать инстанс класса А_В при условии что пока ни А ни В на которые он ссылается нет в БД. Ну и сам метод
A a = new A(new IdA("code"," nameA"))
B b = new B(new IdB("code"," nameB"))
A_B ab = new A_B(new IdA_B("code", "nameA", "nameB", LocalDate.now()), LocalDate.now().plusDays(1), a, b);
abRepository.save(ab);
cascade(CascadeType.All)
- решило проблему.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня в activity есть фрагмент с recycler view (вертикальный список)Как сделать так, чтобы по нажатию любого элемента в этом списке открывался другой...
Есть разные строки но надо определить именно L1H3708 и L1H2708Необходимо определять c помощью rejex есть ли L на первом месте и 3 или 2 на пятом
В одной из книг даются примеры и мне не совсем понятно использование кодового слова "new"