2014-12-16 2 views
1

Можно ли создать некоторую комбинацию аннотаций, которые обеспечивают следующее:JPA зарубежный ключ - insert новый запись если необходимо?

  • Есть 2 таблицы (один-2-многим)
  • Можно ли на уровне JPA без программирования, просто создать объект " один "класс, и если есть набор идентификаторов, которые просто делают его ссылкой в ​​таблице" many ", и в случае, если идентификатор не установлен, создайте новую запись в" одной "таблице и сделайте ссылку на этот идентификатор в таблице" many ".

ответ

1

Нет. Вам нужно будет создать все объекты сами.

Что вы можете сделать, это использовать каскад для автоматического сохранения, если хотите.

Было бы что-то вроде:

a.setB(b); 
b.getAList().add(a); 

entityManager.persist(a); 

И в классах вы бы карту как:

public class A { 
    // other methods and ID 

    @ManyToOne 
    @JoinColumn(name = "b_id") 
    private B b; 
} 


public class B { 
    // other methods and ID 

    @OneToMany(mappedBy = "b", cascade = CascadeType.PERSIST) 
    private List<A> aList; 
}