2016-12-19 4 views
0

Я определил субъекты отношения в Hibernate ORM с помощью следующего кода:Должен ли обновляться спящий режим/JPA OneToMany с обеих сторон?

@Entity 
public class Treatment { 
    @OneToMany(fetch = FetchType.EAGER, mappedBy="treatment") 
    private List<Consultation> consultations; 
    ... 
} 

@Entity 
public class Consultation { 
    @ManyToOne(fetch=FetchType.EAGER) 
    @JoinColumn(name = "treatment_id") 
    private Treatment treatment; 
    ... 
} 

Мой вопрос, как я должен обновить Лечение/консультации, когда я хочу, чтобы сделать отношения? Достаточно обновить его на одной стороне:

treatment.getConsultations().add(newCon); 

Или я должен обновить его с обеих сторон?

treatment.getConsultations().add(newCon); 
newCon.setTreatment(treatment); 

Как это выглядит в случае удаления?

+0

двусторонний, для двунаправленного отношения –

ответ

0

Ну, используя сопоставленное имя, вы указываете Hibernate, что отношения поддерживаются другой стороной, поданной под названием «лечение» в классе «Консультация». Поэтому сначала вы должны получить консультационный пример, затем установить лечение и, наконец, сохранить консультацию. Он обновит все ссылки в БД как ограничения целостности (пары первичного ключа/внешнего ключа). Таким образом, здесь таблица консультаций будет иметь обработанный столбец внешнего ключа, указывающий на столбец идентификатора (первичный ключ) таблицы обработки.

пример код,

Consultation consultation = new Consultation(); 
// This maintains the relationship. 
consultation.setTreatment(treatment); 
someDaoRepository.save(consultation); 

Надеется, что это помогает, Happy кодирование!

Смежные вопросы