【问题标题】:java.lang.IllegalStateException: no matching editors or conversion strategy foundjava.lang.IllegalStateException:找不到匹配的编辑器或转换策略
【发布时间】:2017-03-22 09:51:00
【问题描述】:

所以我正在构建一个 spring 3.2.3.RELEASE / hibernate 4.0.1.FINAL 应用程序,我得到了以下异常

[2017-03-22 09:29:47,860] 调试 org.springframework.beans.factory.support.DefaultListableBeanFactory [localhost-startStop-1] 在 FactoryBean 类型检查中忽略 bean 创建异常:org.springframework.beans.factory .BeanCreationException:在 URL [jar:file:/D:/Programmes/apache-tomcat-7.0.33/webapps/perWeb/WEB-INF/lib/perService-2.0.jar!/ applicationContext-transactional-service.xml]:在设置 bean 属性“target”时无法解析对 bean“loginServiceImpl”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 URL [jar:file:/D:/Programmes/apache-tomcat-7.0.33/webapps/perWeb/WEB-INF 中定义名称为“loginServiceImpl”的 bean 创建错误/lib/perService-2.0.jar!/applicationContext-simple-service.xml]:初始化bean失败;嵌套异常是 org.springframework.beans.ConversionNotSupportedException:无法将类型“ma.dao.impl.GenericDAO”的属性值转换为属性“dao”所需的类型“ma.dao.IGenericDAO”;嵌套异常是 java.lang.IllegalStateException:无法将类型 [ma.dao.impl.GenericDAO] 的值转换为属性“dao”所需的类型 [ma.dao.IGenericDAO]:找不到匹配的编辑器或转换策略

这是我的 bean:登录服务

<bean id="loginService"
        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
            <ref bean="transactionManagerPER" />
        </property>
        <property name="target">
            <ref bean="loginServiceImpl" />
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="loadUserByUsername">
                    PROPAGATION_REQUIRED,-Exception
                </prop>
            </props>
        </property>
    </bean>

loginServiceImpl

<bean id="loginServiceImpl"
          class="ma.service.login.LoginService">
        <property name="dao">
            <ref bean="userDAO" />
        </property>
    </bean>

用户DAO

<bean id="userDAO"
        class="ma.dao.impl.GenericDAO">
        <constructor-arg>
            <value>
                ma.dao.mappings.Utilisateur
            </value>
        </constructor-arg>
        <property name="sessionFactory">
            <ref bean="sessionFactoryPER" />
        </property>
    </bean>

Utilisateur.Java

@Entity
@NamedQueries(
        {
            @NamedQuery(name="findUtilisateurByName", 
                    query = "select user from Utilisateur user where user.login=:userName"
                    ) 
        }
)
public class Utilisateur implements java.io.Serializable {

    private static final long serialVersionUID = 7214071893495381842L;
    private Integer id;
    private Profil  profil;
    private String  nom;
    private String  prenom;
    private String  login;
    private String  passwd;

    public Utilisateur() {
    }

    public Utilisateur(Integer id) {
        this.id = id;
    }

    @Id @GeneratedValue
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @ManyToOne
    public Profil getProfil() {
        return profil;
    }

    public void setProfil(Profil profil) {
        this.profil = profil;
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public String getPrenom() {
        return prenom;
    }

    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }
}

我错过了什么吗? 如果您需要更多信息,请告诉我

【问题讨论】:

  • 好像ma.dao.impl.GenericDAO没有实现ma.dao.IGenericDAO
  • 你是对的,这就是问题所在。感谢您的快速回答

标签: java spring hibernate


【解决方案1】:

您的 GenericDao 似乎无法转换为 IGenericDao,因此可能有几个原因,例如您的 GenericDao 实现了 IGenericDao 等。

如果您正在实现 GenericDao 模式,以下链接可能会很有用:

https://www.codeproject.com/Articles/251166/The-Generic-DAO-pattern-in-Java-with-Spring-and

【讨论】:

  • 是的,你是对的,我的 genericDAO 没有实现 IGenericDAO,谢谢它很有帮助
猜你喜欢
  • 2011-09-21
  • 2018-01-06
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多