Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate JPQL多对多条件查询_Hibernate_Jpa_Jpa 2.0_Jpql - Fatal编程技术网

Hibernate JPQL多对多条件查询

Hibernate JPQL多对多条件查询,hibernate,jpa,jpa-2.0,jpql,Hibernate,Jpa,Jpa 2.0,Jpql,我有两个实体:新闻和具有多对多关系的标签。新闻有一个日历字段。我有一个长数组,带有一些标记ID和一个日历。我想得到所有的新闻,其中至少有一个标签从指定的ids数组,只有那些有更新的日历,然后我拥有。实现它的最好方法是什么?提前感谢。您没有显示的是标记ID的类型。根据预期中的消息,它是数组。因为您要与Long进行比较,所以参数的类型应该是以下类型之一:Long、Long或列表您没有显示的是标记ID的类型。根据预期中的消息,它是数组。因为您要与Long进行比较,所以参数的类型应该是以下类型之一:Lo

我有两个实体:新闻和具有多对多关系的标签。新闻有一个日历字段。我有一个长数组,带有一些标记ID和一个日历。我想得到所有的新闻,其中至少有一个标签从指定的ids数组,只有那些有更新的日历,然后我拥有。实现它的最好方法是什么?提前感谢。

您没有显示的是
标记ID的类型。根据预期中的消息,它是数组。因为您要与Long进行比较,所以参数的类型应该是以下类型之一:Long、Long或
列表
您没有显示的是
标记ID的类型
。根据预期中的消息,它是数组。因为您要与Long进行比较,所以参数的类型应该是以下类型之一:Long、Long或
列表

JB Nizet和Mikko Maunu的组合答案:

select n from News n inner join n.tags tag
where tag.id in (:tagIds)
and n.theCalendarField > :calendarParam
SELECT DISTINCT n FROM News n INNER JOIN n.tags t
WHERE t.id IN (:tagIds) AND n.timestamp > :timestamp

它要求传递列表,数组不行。

JB Nizet和Mikko Maunu的组合答案:

SELECT DISTINCT n FROM News n INNER JOIN n.tags t
WHERE t.id IN (:tagIds) AND n.timestamp > :timestamp

它要求传递列表,但数组不行。

我假设in是一个输入错误,它应该是id。尽管如此,我还是遇到了以下异常:遇到了数组值参数绑定,但期望[java.lang.Long]是的,它是一个输入错误。我认为,你得到的例外是由一个休眠bug引起的。用(:tagIds)
中的
替换:tagIds中的
。哦,天哪,我太笨了,我传的是弦而不是长音。我马上查一下。也许你可以再详细一点。我看不懂你的屏幕。你有什么例外?它做错了什么?错误消息旨在被读取,并提供有用的信息。“某事物出错”一点帮助都没有。对不起,说得不具体。这与之前的错误相同,请检查我的编辑。我假设in是一个输入错误,它应该是id。尽管如此,我还是得到了以下异常:遇到了数组值参数绑定,但期望[java.lang.Long]是的,它是一个输入错误。我认为,你得到的例外是由一个休眠bug引起的。用(:tagIds)
中的
替换:tagIds中的
。哦,天哪,我太笨了,我传的是弦而不是长音。我马上查一下。也许你可以再详细一点。我看不懂你的屏幕。你有什么例外?它做错了什么?错误消息旨在被读取,并提供有用的信息。“某事物出错”一点帮助都没有。对不起,说得不具体。这与以前的错误相同,请检查我的编辑。将TagID类型更改为List,作为参数传递。将TagID类型更改为List,作为参数传递。谢谢,伙计,这样做了。然而,如果我的列表中有7个标签,我会得到一个包含7个相同实体的新闻列表。我添加了DISTINCT,它做到了这一点,但不知道为什么会这样。谢谢,伙计,成功了。然而,如果我的列表中有7个标签,我会得到一个包含7个相同实体的新闻列表。我添加了DISTINCT,它确实做到了,但不知道为什么会这样。