2014-11-11 8 views
0

У меня есть 2 классов, которые соединены с помощью двунаправленного ManyToOne/OneToMany отношений:пустого DB joincolumn после каскадной вставки в двунаправленной связи

Члена в ClassA:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "classA") 
private List<ClassB> classBList = new ArrayList<ClassB>(); 

член в ClassB:

@ManyToOne 
@JoinColumn(name = "CLASSA_ID", referencedColumnName = "id") 
private ClassA classA; 

Когда я звоню classA.getClassBList(). Add (newClassB); создается новая запись DB для класса B, но столбец DBASS CLASSA_ID остается нулевым. , конечно, все сущности определены в persistence.xml.

Я ценю любую помощь, может быть, это всего лишь небольшая деталь.


Благодаря bigGuy Мой класс выглядит, что теперь:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) 
@JoinColumn(name = "CLASSA_ID", referencedColumnName = "id") 
private List<ClassB> classBList = new ArrayList<ClassB>(); 


@ManyToOne 
private ClassA classA 

ответ

0

аннотаций @JoinColumn указывает, что данное лицо является собственником отношений.

В вашем случае владелец ClassB.

Таким образом, вы должны использовать эту линию, чтобы создать отношения:

newClassB.setClassA(classA); 

Если вы хотите создать отношения с линией

classA.getClassBList().add(newClassB); 

сделать ClassA владелец отношений (переход @JoinColumn в CLASSA).