Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 用于获取子记录的HQL查询筛选条件返回的行数超出要求_Hibernate_Hql - Fatal编程技术网

Hibernate 用于获取子记录的HQL查询筛选条件返回的行数超出要求

Hibernate 用于获取子记录的HQL查询筛选条件返回的行数超出要求,hibernate,hql,Hibernate,Hql,我已经为一对多映射创建了三个表 1) 现金水单 2) 股票记录 3) 现金记录。 对于每个CashMemo实体,可以有多个StockRecord实体。 以下是我的hql查询 String sql = "select cm from CashMemo cm join cm.stockRecords s where s.stockTypeId=" + stockTypeId; 此查询的结果是返回具有该特定stocktypeid的行,以及具有类似于先前返回的行的cashmemoid的行 任何帮助都将

我已经为一对多映射创建了三个表 1) 现金水单 2) 股票记录 3) 现金记录。 对于每个CashMemo实体,可以有多个StockRecord实体。 以下是我的hql查询

String sql = "select cm from CashMemo cm join cm.stockRecords s where s.stockTypeId=" + stockTypeId;
此查询的结果是返回具有该特定stocktypeid的行,以及具有类似于先前返回的行的cashmemoid的行


任何帮助都将不胜感激

这是意料之中的:如果你问:给我所有有“阿拉巴马州”的国家,你会得到美国,对吗?现在如果你问美国:把你的州给我:它会把50个州都还给你,而不仅仅是阿拉巴马州,对吗?如果你只想返回阿拉巴马州及其国家,你应该询问数据库:给我所有阿拉巴马州及其所属国家。我不确定你为什么需要
CashMemo\u StockRecord
表,除非这里也涉及很多关系。更合适的HQL可能是
从cashmoom cm中选择,其中cm.stockRecords.stockTypeId=:stockType
。也就是说,join表达式可能会合成您的结果。请记住设置
stockType
参数。@dan否,这将是无效的JPQL。OneToMany关联的联接表非常合理:它是单向OneToMany关联的默认映射,顺便说一句@JBNizet,根据您的解释,我要求所有州名为阿拉巴马州的国家。同样,所有带有stocktypeId的现金备忘录都是这样。那么,我的hql不正确吗。?为什么它会返回那些有美国国家关联的州?因为你没有选择州。您正在选择国家。一旦你有了这些国家,你就会问他们:好的,你们的国家是什么?