2016-06-12 2 views
0

У меня есть сущность User и Entity UserPage Пользователь не имеет UserPage при создании его
Теперь я хочу, чтобы создать userpage и назначить его пользователю. Это выглядит следующим образом:Как сохранить изменения в объект с помощью JPA

UserPage page= new UserPage([Attributes here]); 
User user; (this is a User previously created, persisted and now fetched) 

теперь я следующее:

user.setUserPage(page); 
userPageEJB.persist(page); 

теперь, когда я хочу принести userPage пользователя, я:

User user= userEJB.getUserByID([userID here]); 
UserPage page= user.getUserPage(); 

Проблема теперь что изменения, похоже, не были сохранены (последняя строка кода всегда возвращает null). Как сохранить их, чтобы я мог получить страницу конкретного пользователя?

+0

Показать код города. Все это работает в одной транзакции? Как это управляется? – chrylis

ответ

0

Если у пользователя и пользователя есть отношения родитель-потомок, используйте картографию CascadeType. С помощью этого сопоставления JPA будет переводить изменения состояния объекта в соответствующее заявление DML:

class User{ 
@OneToOne(mappedBy = "user", 
    cascade = CascadeType.PERSIST) 
private UserPage userPage; 
.... 
} 
0

первое, что нужно проверить, является CascadeType отношений между UserPage и Пользователем, вы должны иметь по крайней мере CascadeType.PERSIST, вы можете также использование CascadeType.ALL зависит от определения сделанных вами отношений. во-вторых, проверьте, был ли ваш код выполнен в одной транзакции (будь то BTM или CTM), чтобы все изменения были сброшены в БД.

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