JPA Criteria Join没有给我一个列表

时间:2017-07-25 15:59:15

标签: hibernate jpa criteria

您好我正在使用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。

0 个答案:

没有答案