2013-03-13 4 views
0

У меня есть 2 классов, называемых Enquiry.java и EnquiryItem.javaHibernate OneTOMany Mapping Ошибка

Когда enuiry генерируется я спасаю его элементы в EnquiryItems.

Ниже приведены мои файлы сопоставления в классах POJO.

Enquiry.java

@OneToMany(fetch=FetchType.LAZY,cascade = CascadeType.ALL,mappedBy="enquiryId") 
@JoinColumn(name = "enq_id", referencedColumnName = "id") 
private List<EnquiryItem> enquiryItems=new ArrayList<EnquiryItem>(); 

EnquiryItem.java

@ManyToOne 
@JoinColumn(name="enq_id") 
private Enquiry enquiryId; 

Я не могу найти, где я делаю неправильно. Пожалуйста, помогите мне.

EDIT: при запросе сохраняется enquiry_id сохраняет null в базе данных.

+0

Какой тип исключения вы получаете – Krushna

+0

Я не могу понять, где я делаю неправильно. Помогите ребятам –

+0

@Krushna Я не получаю никакого исключения, кроме enq_id null в базе данных –

ответ

2

Проблема заключается в том, что вы должны установить enquiryId перед тем, как сохранить его в базе данных. Это необходимо, поскольку вы использовали атрибут mappedBy. что вам нужно сделать.

Когда вы добавляете объект EnquiryItem в список, пожалуйста, установите enquiryId, вызвав его метод setter. EDIT:

, как показано ниже:

EnquiryItem.setEnquiryId(enquiry) 

EDIT 2:

Enquiry enquiry= new Enquiry(bus,prListNo,enquiryNo,user,new java.util.Date(),enquiryItemsList); 
for(EnquiryItem item:enquiryItemsList) 
item.setEnquiryId(enquiry); 
+0

. Во время ввода мы не имеем идентификатора в нашей руке, поскольку база данных будет генерировать его. Поэтому он должен справиться с этим сам по себе. –

+0

Я не говорю, чтобы установить идентификатор базы данных. Я говорю, чтобы установить объект типа Запрос в класс EnquiryItem, например EnquiryItem.setEnquiryId (запрос запроса) – Krushna

+0

Так я генерирую экземпляр запроса, запрос запроса = новый запрос (bus, prListNo, enquiryNo, user, new java .util.Date(), enquiryItemsList); где enquiryItemsList - это запрос. Теперь, как я могу установить его? –

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