Bonjour,

J'ai 3 entités User, Group et Role,

c'est une relation manyToMany entre chaque

voici le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public class User{
...
@ManyToMany
@JoinTable(name = "usr_rel_users_groups",
  joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
  inverseJoinColumns = @JoinColumn(name = "group_id", referencedColumnName = "id"))
private Set<Group> groups = new HashSet<Group>();
...
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class Group {
...
@ManyToMany
@JoinTable (name = "usr_rel_groups_roles",
  joinColumns = @JoinColumn(name = "group_id", referencedColumnName = "id"),
  inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
private Set<Role> roles = new HashSet<Role>();
 
@ManyToMany(mappedBy = "groups")
private Set<User> users = new HashSet<User>();
...
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public class Role {
...
@ManyToMany(mappedBy = "roles")
private Set<Group> groups = new HashSet<Group>();
...
}
J'ai une namedQuery qui utilise les 3 entités,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
@NamedQuery(name="findUsersByRole",
        query="SELECT user FROM User user JOIN user.groups group JOIN group.roles role WHERE role.name = :roleName")
mais quand je démare le serveur il me dit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Errors in named queries: findUsersByRole
mais le stackTrace ne contient pas assez d'info que pour avoir une idée d'où vient l'erreur

Est-ce que vous avez une idée de l'erreur?