Java Hibernate:PropertyNotFoundException:找不到XXX的getter

Java Hibernate:PropertyNotFoundException:找不到XXX的getter,java,hibernate,Java,Hibernate,我有一个模型(见下文),Hibernate抱怨它找不到字段stockId的getter 修复错误非常简单,但我仍在学习hibernate,不知道它为什么会抛出这个错误?我不尝试从任何地方访问该值,因此我假设hibernate正在尝试在幕后调用它 它是否查看模型中的每个字段,并期望它定义一个getter 或者它是否看到变量stockId是私有的,并且要求它有一个getter 谢谢 package com.mkyong.stock.model; import java.io.Serializabl

我有一个模型(见下文),Hibernate抱怨它找不到字段
stockId
的getter

修复错误非常简单,但我仍在学习hibernate,不知道它为什么会抛出这个错误?我不尝试从任何地方访问该值,因此我假设hibernate正在尝试在幕后调用它

它是否查看模型中的每个字段,并期望它定义一个getter

或者它是否看到变量
stockId
是私有的,并且要求它有一个getter

谢谢

package com.mkyong.stock.model;

import java.io.Serializable;

public class Stock implements Serializable {

  private static final long serialVersionUID = 1L;

  private Long stockId;
  private String stockCode;
  private String stockName;

  public void setStockCode(String stockCode) {
    this.stockCode = stockCode;
  }

  public void setStockName(String stockName) {
    this.stockName = stockName;
  }
}
EDIT:刚刚修复了上面的错误,现在它也在抱怨找不到setter。看来所有元组/字段都需要定义getter和setter

编辑:根据请求添加错误

[WARNING]
java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:497)
  at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
  at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [database/Hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
  at java.security.AccessController.doPrivileged(Native Method)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
  at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
  at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
  at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
  at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
  at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
  at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
  at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
  at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
  at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
  at com.mkyong.common.App.main(App.java:13)
  ... 6 more
Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
  at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:110)
  at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:135)
  at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
  at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:323)
  at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:456)
  at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:131)
  at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
  at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:267)
  at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
  at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814)
  at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732)
  at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
  ... 21 more
Caused by: java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
  at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:107)
  ... 34 more
Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for stockCode in class com.mkyong.stock.model.Stock
  at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:306)
  at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:299)
  at org.hibernate.mapping.Property.getGetter(Property.java:294)
  at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:300)
  at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:141)
  at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:78)
  ... 39 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.308 s
[INFO] Finished at: 2017-01-19T20:07:49-08:00
[INFO] Final Memory: 13M/298M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (default-cli) on project HelloWorld: An exception occured while executing the Java class. null: InvocationTargetException: Error creating bean with name 'sessionFactory' defined in class path resource [database/Hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]: Could not find a getter for stockCode in class com.mkyong.stock.model.Stock -> [Help 1]
[警告]
java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
运行(Thread.java:745)
原因:org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的bean时出错,该bean在类路径资源[database/Hibernate.xml]中定义:调用init方法失败;嵌套的异常是org.hibernate.HibernateException:无法实例化默认的tuplizer[org.hibernate.tuple.entity.PojoEntityTuplizer]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
位于java.security.AccessController.doPrivileged(本机方法)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:423)
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
位于org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:139)
位于org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:83)
位于com.mkyong.common.App.main(App.java:13)
... 还有6个
原因:org.hibernate.hibernateeexception:无法实例化默认tuplizer[org.hibernate.tuple.entity.PojoEntityTuplizer]
位于org.hibernate.tuple.entity.EntityTuplizerFactory.ConstructionTuplizer(EntityTuplizerFactory.java:110)
位于org.hibernate.tuple.entity.EntityTuplizerFactory.ConstructionDefaultTuplizer(EntityTuplizerFactory.java:135)
位于org.hibernate.tuple.entity.EntityModelToUplizerMapping。(EntityEntityModelToUplizerMapping.java:80)
位于org.hibernate.tuple.entity.EntityMetamodel。(EntityMetamodel.java:323)
位于org.hibernate.persister.entity.AbstractEntityPersister。(AbstractEntityPersister.java:456)
位于org.hibernate.persister.entity.SingleTableEntityTyperSister。(singleTableEntityTyperSister.java:131)
位于org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
位于org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:267)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
位于org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814)
位于org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732)
位于org.springframework.orm.hibernate3.AbstractSessionFactoryBean.AfterPropertieSet(AbstractSessionFactoryBean.java:211)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 还有21个
原因:java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:422)
位于org.hibernate.tuple.entity.EntityTuplizerFactory.ConstructionTuplizer(EntityTuplizerFactory.java:107)
... 34多
原因:org.hibernate.PropertyNotFoundException:在com.mkyong.stock.model.stock类中找不到stockCode的getter
位于org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:306)
位于org.hibernate.property.BasicPropertyAccessor.getGetter(basicProperty