1

在我的日食上可以看到以下错误。我只是想保存一个终端组对象,但收到关于找不到 TerminalGroupImpl 的错误。因此,我创建了一个 TerminalGroupImpl.java 作为休眠文件,其中包含 terminal_group 表的 @Entity。我有一个 TerminalGroupDaoHibernate.java 文件,它使用 TerminalGroupImpl.class 在 terminal_group 表上执行查询。

请如果有人能告诉我我的代码有什么问题和/或我能做些什么来找出问题所在?

错误

Invalid property 'terminalGroupDaoHibernate' of bean class
[com.ccadllc.dac.model.consumer.terminalgroups.TerminalGroupServiceImpl]: 
Bean property 'terminalGroupDaoHibernate' is not writable or has an invalid setter method. 
Does the parameter type of the setter match the return type of the getter?

这是我的 applicationContext.xml 文件:

<!-- Terminal Group Service -->
<bean id="com.ccadllc.dac.model.consumer.terminalgroups.TerminalGroupService"
    class="com.ccadllc.dac.model.consumer.terminalgroups.TerminalGroupServiceImpl">
 <property name="terminalGroupDao"   
ref="com.ccadllc.dac.model.consumer.terminalgroups.dao.TerminalGroupDao"/>
 <property name="terminalGroupComponentDao" 
ref="com.ccadllc.dac.model.consumer.terminalgroups.dao.TerminalGroupComponentDao"/>
</bean>

<bean id="com.ccadllc.dac.model.consumer.terminalgroups.TerminalGroupImpl"
    class="com.ccadllc.dac.model.consumer.terminalgroups.TerminalGroupImpl" abstract="true">
    <property name="terminalGroupDaoHibernate" 
ref="com.ccadllc.dac.model.consumer.terminalgroups.dao.TerminalGroupDaoHibernate"/>
</bean>

<bean id="com.ccadllc.dac.model.consumer.terminalgroups.dao.TerminalGroupDao"
    class="com.ccadllc.dac.model.consumer.terminalgroups.dao.TerminalGroupDaoHibernate">
        <property name="messageService" ref="com.ccadllc.dac.messaging.MessagingService" /> 
</bean>

under hibernate.annotated.classes:                  
<value>com.ccadllc.dac.model.consumer.terminalgroups.TerminalGroupImpl</value>

TerminalGroupServiceImpl.java

Getter/Setter in TerminalGroupServiceImpl.java:
private TerminalGroupDao terminalGroupHibernateDao;
 /**
 * @param TerminalGroupHibernateDao The TerminalGroupHibernateDao to set.
 */
@Required
@Transactional
public void setTerminalGroupHibernateDao(final TerminalGroupDao terminalGroupHibernateDao)
{
    this.terminalGroupHibernateDao = terminalGroupHibernateDao;
}

@Required
@Transactional
public TerminalGroupDao getTerminalGroupHibernateDao()
{
    return terminalGroupHibernateDao;
}
4

3 回答 3

0

您不应该在 getter 上添加 @Required 注释。此外,在您的 bean xml 中,您使用属性名称terminalGroupDao,但您的 setter 具有名称setTerminalGroupHibernateDao而不是setTerminalGroupDao.

于 2012-04-25T21:30:44.100 回答
0

您正在尝试设置 terminalGroupDaoHibernate 属性而不是 terminalGroupHibernateDao。

于 2012-04-25T19:18:15.537 回答
0

您在 xml 中定义的属性是“terminalGroupDaoHibernate”,但您的服务 impl 名称中的 setter 是“setTerminalGroupHibernateDao”。有拼写错误。设置器名称应为“setTerminalGroupDaoHibernate”

于 2012-04-25T19:18:28.320 回答