JPQL requête select pour pour valeur elementcollection
J'ai l'entité ci-dessous avec enum
collection. Je voudrais à la recherche de l'utilisateur avec un enum
paramètre.
L'utilisateur peut disposer de plusieurs permission. Quand je recherche les utilisateurs avec le paramètre comme Permission.APPROVE
, il peut y avoir un ou plusieurs utilisateurs qui ont cette autorisation.
Comment puis-je écrire JPQL
requête?
User.java
@Entity
....
public class User implements Serializable {
@ElementCollection(targetClass = Permission.class)
@Enumerated(EnumType.STRING)
@CollectionTable(name = "USER_PERMISSION", joinColumns = @JoinColumn(name = "PERMISSION", referencedColumnName = "ID"))
private List<Permission> permisssionList;
}
Permission.java
public enum Permission {
REGISTER, APPROVE, REJECT, CONFIRM;
}
Comment écrire ?
public List<User> findUserList(Permission permission) {
Query q = em.createQuery(.....);
result = q.getResultList();
}
Vous devez vous connecter pour publier un commentaire.
De spec
Essayer celui-ci.
@Embeddable
et@CollectionTable
sont juste un moyen simple de carte Un De Nombreuses relations, ils ne peuvent pas être interrogés directement, ni persisté, mais peut certainement être rejoint, faites comme vous le feriez avec tout Un À Plusieurs " de la relation:et passer à l'énumération que régulièrement paramètre