您好我正在使用Criteria进行高级搜索查询,我有类似的内容
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Tuple> criteriaQuery = criteriaBuilder.createTupleQuery();
Root<Event> eventRoot = criteriaQuery.from(Event.class);
Join<Event,Community> communityJoin = eventRoot.join("community", JoinType.LEFT);
Join<Event,User> user = eventRoot.join("user", JoinType.LEFT);
Join<Event,Device> device = eventRoot.join("device", JoinType.LEFT);
Join<Event,List<AuditLog>> auditLogs = eventRoot.join("auditLogs", JoinType.LEFT);
我有,因为你可以看到与AuditLog实体的一对多关系(映射为auditLogs)。然后我就像这样进行选择
selections.add(user.alias("user"));
selections.add(device.alias("device"));
selections.add(auditLogs.alias("auditLogs"));
我将结果作为元组列表
Query query = entityManager.createQuery(criteriaQuery);
List<Tuple> tuples = (List<Tuple>) query.getResultList();
问题在于,我从元组中获取auditLog,我得到它像AuditLog对象而不是AuditLog的列表
tuples.get(0).get("auditLogs")
我做错了吗?我不知道为什么我不能将结果作为List AuditLog。