1
隨着Permission
是一個枚舉,是可以選擇的所有用戶,而無需使用JPA標準API一定的權限:標準API不@ElementCollection
@Entity
public class User {
@ElementCollection
@CollectionTable(joinColumns = @JoinColumn(name = "USER_ID"))
private Set<Permission> permissions = new HashSet<>();
}
我目前的做法(沒有返回值):
// em => EntityManager
// cb => CrieriaBuilder
Root<User> root = query.from(User.class);
query.select(root);
SetJoin<User, Permission> join = root.joinSet("permissions");
query.where(cb.not(cb.equal(join, Permission.RULE_THEM_ALL)));
List<User> result = em.createQuery(query).getResultList();
爲什麼SQL標籤? – jarlh
JPQL等價於'SELECT u FROM User u WHERE:myPerm IN u.permissions'你不能做「Set == elementValue」,但你可以使用IN – DN1