Bonjour,
J'ai deux classes : UserEntity et UserRoleEntity avec une relation OneToMany.
Lorsque je persiste une instance de UserEntity, les roles associés sont bien persistés également. Mais lorsque je veux récupérer l'utilisateur, ses rôles ne sont pas chargés. Et de fait, la table d'association UserEntity_UserRoleEntity est vide.
Voici mes entités.
UserEntity :
UserRoleEntity :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 @Entity public class UserEntity implements Serializable { private static final long serialVersionUID = 190946444189883818L; @GeneratedValue(strategy = GenerationType.AUTO) @Id private Long id; private String firstname; private String lastname; @Column(nullable = false, unique = true) private String email; @Column(nullable = false) private String password; private boolean active; @OneToMany(fetch=FetchType.EAGER) @Cascade(CascadeType.ALL) private Set<UserRoleEntity> roles;
Et voici mon DAO :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 @Entity public class UserRoleEntity implements Serializable { private static final long serialVersionUID = 7263633614691880969L; @GeneratedValue(strategy = GenerationType.AUTO) @Id private Long id; @Column(nullable = false) private String role; @ManyToOne @JoinColumn(nullable=false) private UserEntity user;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public void createUser(UserModel user) throws TechnicalException { Session session = sessionFactory.getCurrentSession(); // save user UserEntity entity = UserTranslator.toEntity(user); Long id = (Long) session.save(entity); user.setId(id); } public UserModel getUserByEmail(String email) throws TechnicalException { Session session = sessionFactory.getCurrentSession(); Query query = session.createQuery("from UserEntity user where user.email = :email"); query.setParameter("email", email); UserEntity entity = (UserEntity) query.uniqueResult(); return UserTranslator.toModel(entity); }
Partager