Hibernate 休眠,关联不工作
我有一个这样的模型 seasturs=>MatCountry=>MatCountryI18nHibernate 休眠,关联不工作,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
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,并通过反向关联构建您的列表