パラメータ:いくつかのケースではJAVA EclipseLinkのオプションのクエリは、私は特定の条件でアイテムをフィルタクエリを持って
@NamedQueries({
@NamedQuery(
name = ITEM.FIND_ALL_PARAMS_BY_COMPANY_COUNTRY_GROUP,
query = "SELECT i FROM Item i where "
+ "((i.idCompany=:companyId AND i.idEMGroup=:groupId) "
+ "OR (i.idCompany=:companyId AND i.idEMCountry =:countryId AND i.idEMGroup is null) "
+ "OR (i.idCompany is null AND i.idEMCountry = :countryId AND i.idEMGroup is null)) "
+ "order by i.idEMCountry desc, i.idCompany desc, i.idEMGroup desc")
})
がidEMGroupパラメータ企業ID oをこのIdEmCompany = 200630758) AND (IdEMGroup = NULL)
ように見えるSQLを生成し、それどのnullにすることができますが正しくありませんsql構文は、値がnullの場合は'Column = NULL'
の代わりに'Column IS NULL'
と動的に可能ですが、多くのifを追加しないと、このクエリを書き直すのが良いでしょうCriteria APIと値が存在するかどうかを確認して、特定の条件に述語を追加しますか?