是否可以使用 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,并且无法获取具有 null 的条目unidadMedida
。
有什么解决方法吗?