1,今天做公司的CRM客户关系管理软件:其中客户和联系人采用了Hibernate的一对多双向关联的关系。发生了如下异常: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loggerListener' defined in ServletContext resource [/WEB-INF/security.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.config.internalTransactionAdvisor': Cannot create inner bean '(inner bean)' of type [org.springframework.transaction.interceptor.TransactionInterceptor] while setting bean property 'transactionInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#1': Cannot resolve reference to bean 'transactionManager' while setting bean property 'transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in ServletContext resource [/WEB-INF/applicationContext-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext-dao.xml]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.ynstudio.crm.model.Contact.customerinfo in com.ynstudio.crm.model.Customerinfo.contacts后几番调试后,终于发现。原来是Contact的
/** *所属客户 */
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="CUSTOMER_ID", unique=true, nullable=true)//, insertable=false, updatable=false)
public Customerinfo getCustomer() {
return customerinfo;
}
public void setCustomer(Customerinfo customerinfo) {
this.customerinfo = customerinfo;
}
解释下这里为什么会犯这种低级错:因为这段代码是我拷贝过来的,Customerinfo的get和set方法还没换过来。改为
public Customerinfo getCustomerinfo() {
return customerinfo;
}
public void setCustomerinfo(Customerinfo customerinfo) {
this.customerinfo = customerinfo;
}