Hibernate - 使用null FK检索对象

时间:2013-07-04 13:06:21

标签: java sql hibernate hql

是否可以使用Hibernate从具有空外键的对象中仅获取某些字段?

我有一个实体Cccg,引用了其他表,例如unidadMedida。我想从数据库中获取Cccgs的一些字段,如果此字段id_unidadMedida为空,则包括id_unidadMedida。如果我获取整个对象,我可以获取对象,但我只想获得一些字段。问题是Hibernate似乎转换了HQL格式:

select a.idnCccg, a.id_unidadMedida ... where (to_date('01/01/2014 00:00:00','dd/MM/yyyy HH24:MI:SS') <= a.fecFinVigencia or a.fecFinVigencia is NULL) a.fechaBajaLogica is NULL

进入一个查询,将该字段的值与unidadMedida的主键进行比较。

select ... from PROG_TCCCG cccg0_, PROG_TUNIDAD_MEDIDA unidadmedi_ where cccg0_.IDN_UNIMED=unidadmedi_.IDN_UNIDAD_MEDIDA and ...

因为在SQL中,任何与null的比较都返回false,cccg0_.IDN_UNIMED=unidadmedi_.IDN_UNIDAD_MEDIDA将始终求值为false,并且无法获取带有unidadMedida的条目。

有解决方法吗?

0 个答案:

没有答案