我的日食会出现以下错误。我只是想保存一个terminalgroup对象,并且收到有关未找到TerminalGroupImpl的错误。所以我创建了一个TerminalGroupImpl.java作为一个hibernate文件,它具有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;
}
答案 0 :(得分:0)
您正在尝试设置terminalGroupDaoHibernate属性而不是terminalGroupHibernateDao。
答案 1 :(得分:0)
您在xml中定义的属性是“terminalGroupDaoHibernate”,但服务impl名称中的setter是“setTerminalGroupHibernateDao”。有拼写错误。 setter名称应为“setTerminalGroupDaoHibernate”
答案 2 :(得分:0)
您不应在getter上添加@Required注释。此外,在bean xml中,您使用属性名称terminalGroupDao
,但您的setter的名称为setTerminalGroupHibernateDao
,而不是setTerminalGroupDao
。