我正在使用以下查询来获取数据数据库
String hql = "from Parameters s "
+"left join fetch s.userValues as uv "
+ "where s.groupId=:gid "
+"and uv.user.id=:uid " ;
上面是我的hql查询,我从Parameter和userValues中获取数据。 如果用户在userValues中有任何值,则此查询正常工作。 当userValues中没有用户保存的值时,此查询不会获取任何值。
我的问题是是否应该有userValues中的数据我想从参数中获取数据。
如何使用hql实现这一点?
我只想在hql中进行左连接以获取第一个表值。
答案 0 :(得分:1)
你可能想要这样的东西。您还需要将关联加入用户。请注意,您应该使用参数和组之间的Hibernate映射,如下所示。但您可能需要使用分组来删除重复的结果。
String hql = "from Parameters s "
+ "join s.group g "
+ "left join fetch s.userValues uv "
+ "left join uv.user u "
+ "where g.id=:gid "
+ "and (u.id=:uid or u is null) ";