休眠,多对一 not-found=“ignore”,条件添加限制,列表,- 无法解析属性

Hibernate, many-to-one not-found="ignore", Criteria add Restrictions, list,- could not resolve property

提问人:Vasiliy Volk 提问时间:9/5/2023 最后编辑:Vasiliy Volk 更新时间:9/5/2023 访问量:43

问:

我的表包含指向不存在的记录的链接。为了提取链接断开的对象,我使用了 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>
   

已成功接收对象。但是搜索 workplace.un 字段出现错误:

Criteria crit;
...
crit.add(Restrictions.eq("workplace.un", un));
crit.list();

错误:

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 

是否有可能修复搜索?

如果 remove not-found=“ignore”,则搜索有效,但无法检索链接断开的对象。

java 运行时错误 hibernate-criteria 多对一

评论


答: 暂无答案