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 休眠,关联不工作_Hibernate_Associations_One To Many - Fatal编程技术网

Hibernate 休眠,关联不工作

Hibernate 休眠,关联不工作,hibernate,associations,one-to-many,Hibernate,Associations,One To Many,我有一个这样的模型 seasturs=>MatCountry=>MatCountryI18n logger.info("Seizures: "+seizures.get(0).getMatCountry().getMatCountryI18ns().size()); 当我尝试这样查询数据时 criteria. createAlias("matCountry","seizure_country",CriteriaSpecification.INNER_JOIN). createAl

我有一个这样的模型

seasturs=>MatCountry=>MatCountryI18n

logger.info("Seizures: "+seizures.get(0).getMatCountry().getMatCountryI18ns().size());
当我尝试这样查询数据时

criteria.
createAlias("matCountry","seizure_country",CriteriaSpecification.INNER_JOIN).       
createAlias("seizure_country.matCountryI18ns","seizure_country_translation",CriteriaSpecification.INNER_JOIN).
add(Restrictions.eq("seizure_country_translation.matLanguageCode", "de").
setFetchMode("seizure_country", FetchMode.JOIN).
setFetchMode("seizure_country_translation", FetchMode.JOIN);
并从数据库中获取数据

List<Seizure> seizures = getHibernateTemplate().findByCriteria(criteria);
它将返回与关联的所有MatCountryI18n对象 MatCountry

请帮忙

我做错了什么


关于JS

您要求hibernate为您提供所有具有MatCountry的、具有一个或多个MatCountryI18n且matLanguageCode=='de'的捕捉器。这正是你得到的


听起来您只想选择matLanguageCode=='de'的特定MatCountryI18n's。我会用MatCountryI18n的标准开始你的选择,然后像你现在做的那样,通过你的关联以相反的顺序获取数据。无论是通过编程方式还是通过。

我的用例是,我不想有一个所有癫痫发作的列表,它们的国家和该国的适当翻译(即英语),我理解,但您所做的是选择带有一些连接和这些连接上的where语句的癫痫发作。当您访问MatCountry时,Hibernate将返回并使用您的正常映射关联。这就是为什么我建议选择MatCountryI18n,并通过反向关联构建您的列表,从中返回。或者,使用自定义的ResultTransformer。谢谢,我将使用Cool中描述的ResultTransformer!它甚至不必是定制的。谢谢,我在这里也学到了一些新东西:)