My table has links pointing to non-existent records. To extract an object with a broken link, I used not-found="ignore":
<class name="pattern" table="PATTERN">
<id name="un" type="long">
<column name="UN" precision="10" scale="0" />
<generator class="native"/>
</id>
<many-to-one class="Workplace" fetch="select" lazy="false" name="workplace" not-found="ignore">
<column name="UN" not-null="true"/>
</many-to-one>
...
</class>
<class name="Workplace" table="WORKPLACE">
<id name="un" type="long">
<column name="UN" precision="10" scale="0" />
<generator class="assigned"/>
</id>
...
</class>
Objects were successfully received. But searching for the workplace.un field gave an error:
Criteria crit;
...
crit.add(Restrictions.eq("workplace.un", un));
crit.list();
Error:
could not resolve property: workplace.un of: pattern
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:285)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:230)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
at
Is it possible to fix the search?
If remove not-found="ignore", search works, but it fails to retrieve objects with a broken link.