KiminaPera 2019-01-08 10:23 采纳率: 0%
浏览 207

使用spring的DetachedCriteria添加条件时一直报无法解析一个字段

org.springframework.orm.hibernate5.HibernateQueryException: could not resolve property: user.user_name of: com.itheima.crm.domain.SaleVisit; nested exception is org.hibernate.QueryException: could not resolve property: user.user_name of: com.itheima.crm.domain.SaleVisit****
图片说明

下面是SaleVisit实体类以及里面User属性的getter和setter
图片说明
图片说明
下面是user实体类以及getter和setter方法
图片说明图片说明
为什么会报无法解析user.user_name呢????
图片说明
希望大佬能帮帮忙。。。。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 16:01
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Spring框架中,DetachedCriteria是用来处理Hibernate Query Language(HQL)查询的一个工具类。它可以帮助你在Java Bean上定义SQL表达式。

    在你的问题中,你试图使用DetachedCriteria来设置条件,但是遇到了错误:`org.springframework.orm.hibernate5.HibernateQueryException: could not resolve property: user.user_name of: com.itheima.crm.domain.SaleVisit; nested exception is org.hibernate.QueryException: could not resolve property: user.user_name of: com.itheima.crm.domain.SaleVisit```

    这表明你可能尝试了将User对象中的user_name字段映射到SaleVisit对象中的user.user_name字段上,但是在Hibernate中,这是不允许的。

    在Hibernate中,你可以直接操作User对象的字段,而不需要通过SaleVisit对象。所以你应该把User对象的操作放在SaleVisit对象之外,或者通过User对象的公共接口进行操作。

    例如:

    public class SaleVisit {
        private String visit_id;
        //...
    }
    
    public class User {
        private String username;
        public String getUsername() {
            return username;
        }
    }
    

    然后在SaleVisit类中使用User对象的方法:

    public void addUserToSaleVisit(User user) {
        this.user = user;
    }
    

    如果你坚持要使用DetachedCriteria来设置条件,并且仍然遇到问题,那么可能是你的SaleVisit对象和User对象之间存在一些关系,你需要先明确这些关系。

    评论

报告相同问题?