Bonjour,


J'ai 3 classes : User 1 ----> 1 UserDetail 1 ----> (1,n) Authority

Quand je load un User par le code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Criteria crit = getSession().createCriteria(User.class);
crit.add(Restrictions.idEq( 1L ));
crit.setFetchMode("userDetail.authorities", FetchMode.JOIN);
user = (User) crit.uniqueResult();
j'obtiens bien un User, mais quand je fais user.getUserDetail().getAuthorities(),
le premier élément de la liste est null (pour le premier user), les 2 premiers éléments de la liste
sont null (pour le deuxième user) et ainsi de suite.

List authorities = user.getUserDetail().getAuthorities() = [[null, com.ixo.security.Authority@62d337d3]


Avez vous une idée du pourquoi je m'arrache les cheveux ????????


PS: Hibernate core 3.3.2 GA / Hibernate Annotion 3.4.0 GA / Postgre 8.4 / jdbc driver 3


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@Entity
public Class User {
 
    @Embedded
    private userDetail userDetail;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
@Embeddable
public Class UserDetail {
 
    @CollectionOfElements(targetElement = Authority.class, fetch = FetchType.LAZY)
    @JoinTable(name = "Authority", joinColumns = "USERS_ID" )
    @IndexColumn(name="INDEX_COL")
    @Column(name = "Authority", nullable = false)
    private List<Authority> authorities = new LinkedList<Authority>();
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
@Embeddable
public Class Authority {
 
    private String authority;
}
Si vous avez une piste, Merci !!!!

Akeduc