2014-09-22 8 views
2

Я пытаюсь создать объект B, который имеет столбец Join с другим объектом A с первичным ключом другого объекта. Когда я создаю объект B со значением, отсутствующим в сущности A, Я не вижу исключения. Если это не будет автоматически зависеть от JPA?Создание сущности в JPA, которая имеет joinColumn

Фрагменты кода из субъектов:

@Entity 
    public class A{ 

     @Id 
     @Column(name="ORIGIN_ID") 
     private long id; 
     ... 

     @OneToMany(mappedBy="aBean",cascade = CascadeType.PERSIST) 
     private List<B> bList; 
    } 


    @Entity 
    public class B{ 
     @Id 
     private long id; 
     ... 

     @ManyToOne(cascade=CascadeType.MERGE) 
     @JoinColumn(name="ORIGIN_ID") 
     private A aBean; 
    } 
+1

Просьба вставить фрагмент кода о том, как вы «создаете» объект B. – zbig

+0

Для создания с переданным id я получаю bean-элемент сущности A, а затем устанавливаю bean-объект для объекта ABean объекта B. Теперь я добавив нулевую проверку при установке объекта bean в качестве решения вышеуказанной проблемы. –

ответ

0

Вы имеете в виду управления отношениями. В спецификации JPA нет ничего, что я мог бы запомнить, поскольку для этого нужно исключить исключение (потому что пользователь передал информацию о несогласованности отношений). Все реализации JPA будут иметь собственную обработку ситуации. Некоторые из них будут упорствовать только на стороне владельца. Другие будут упорствовать на том, что встречается в первую очередь. Другие имеют дополнительную обработку, которая может быть включена для обнаружения таких вещей и помечать их до пользователя.

Простой совет при использовании двунаправленных отношений, убедитесь, что обе стороны согласованы.

+0

Спасибо. Этот сценарий был частью некоторого тестирования отрицательного сценария. Просто хотел проверить, было ли какое-то решение –

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