Hibernate return empty values on persisted null values
576227Dec 7 2012 — edited Dec 7 2012Hi,
I have an Hibernate based DAO layer with lots of methods in there. The integration test suites work fine against MySql, H2 and HSQLDB but on Oracle I have to work around the fact the Hibernate returns null instead of empty "" for a non set value in the persistence store of Oracle.
I tried with specifying a not-null to true in the Hibernate mapping as in:
<property name="languageCode" type="string" not-null="true">
<column name="language_code" length="2" />
</property>
but it did not change anything and the issue remained.
The way I found to work laboriously around the issue is to explicitly set the values to empty if any are nulls.
public List<NavmenuLanguage> findWithNavmenu(Navmenu navmenu) {
String statement = "select id, version, language_code as languageCode from navmenu_language where navmenu_id = :navmenuId order by language_code nulls first";
Query query = getSession().createSQLQuery(statement)
.addScalar("id", StandardBasicTypes.INTEGER)
.addScalar("version", StandardBasicTypes.INTEGER)
.addScalar("languageCode");
query.setInteger("navmenuId", navmenu.getId());
List<NavmenuLanguage> navmenuLanguages = query.setResultTransformer(Transformers.aliasToBean(NavmenuLanguage.class)).list();
for (NavmenuLanguage navmenuLanguage : navmenuLanguages) {
if (navmenuLanguage.getLanguageCode() == null) {
navmenuLanguage.setLanguageCode(new String());
}
}
return navmenuLanguages;
}
Is there any way to tell Hibernate to return an empty value if a null value is present in the persistence store of Oracle ?
Kind Regards,
Edited by: user573224 on Dec 7, 2012 1:40 AM
Edited by: user573224 on Dec 7, 2012 1:41 AM