HIbernate display exception: PropertyNotFoundException: Could not find installer

I have two POJOs, STOCK and STOCK_DETAILS (one to many relationships). I also have one IAUDITLOG interface (having two methods). I need to implement this interface with BOTH POJO and want to write some implementation as part of these methods. But when I implement the IAUDITLOG interface with the child class "STOCKDETAILS", then it gives the exception "that you must have the setter property"

STANDARD CLASS:

@Entity @Table(name = "stock") public class Stock implements java.io.Serializable, IAuditLog { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id") private Integer stockId; @Column(name = "STOCK_CODE") private String stockCode; @Column(name = "STOCK_NAME") private String stockName; @OneToMany( fetch = FetchType.LAZY, mappedBy = "stock") public Set<StockDetail> stockDetails = new HashSet<StockDetail>(0); public Set<StockDetail> getStockDetails() { return stockDetails; } public void setStockDetails(Set<StockDetail> stockDetails) { this.stockDetails = stockDetails; } public Integer getStockId() { return stockId; } public void setStockId(Integer stockId) { this.stockId = stockId; } public String getStockCode() { return stockCode; } public void setStockCode(String stockCode) { this.stockCode = stockCode; } public String getStockName() { return stockName; } public void setStockName(String stockName) { this.stockName = stockName; } // overridded methods of IAUDITLOG interface public int getLogId() { return stockId; } public String getLogDetail() { return "some implementaion"; } } 

PARTS STATUS

 @Entity @Table(name = "StockDetail") public class StockDetail implements Serializable, IAuditLog { /** * */ private static final long serialVersionUID = 1L; private Integer recordId; private Stock stock; private Float priceOpen; @Id @GeneratedValue @Column(name = "RECORD_ID", unique = true, nullable = false) public Integer getRecordId() { return this.recordId; } public void setRecordId(Integer recordId) { this.recordId = recordId; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "STOCK_ID", nullable = false) public Stock getStock() { return this.stock; } public void setStock(Stock stock) { this.stock = stock; } @Column(name = "PRICE_OPEN", precision = 6) public Float getPriceOpen() { return this.priceOpen; } public void setPriceOpen(Float priceOpen) { this.priceOpen = priceOpen; } //overriddded methods of IADUTILOG inteface public int getLogId() { // TODO Auto-generated method stub return 0; } public String getLogDetail() { // TODO Auto-generated method stub return "some implementation"; } } 

IAUDITLOg Interface:

 public interface IAuditLog { public int getLogId(); public String getLogDetail(); } 

STACK TRACE:

 Caused by: org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister at org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.java:185) at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:135) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:385) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1760) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1798) at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247) at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373) at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509) ... 46 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:138) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:188) at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:341) at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:507) at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:146) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.java:163) ... 55 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:135) ... 64 more Caused by: org.hibernate.PropertyNotFoundException: Could not find a setter for property logDetail in class com.auditLog.common.StockDetail at org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:252) at org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:245) at org.hibernate.mapping.Property.getSetter(Property.java:326) at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertySetter(PojoEntityTuplizer.java:444) at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:201) at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:82) ... 69 more Feb 26, 2014 10:17:08 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Allocate exception for servlet dispatcher org.hibernate.PropertyNotFoundException: Could not find a setter for property logDetail in class com.auditLog.common.StockDetail at org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:252) at org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:245) at org.hibernate.mapping.Property.getSetter(Property.java:326) at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertySetter(PojoEntityTuplizer.java:444) at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:201) at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:82) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:135) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:188) at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:341) at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:507) at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:146) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 

CAN ANYONE PLEASE THAT MAY KNOW what could be the problem ??? Why should I create getter and setter for those properties that do not belong to ACTUALLY in this class, but are implemented from some other interface. FYI ... this works great when I implement this interface with the parent class "STOCK"

+8
java spring hibernate hibernate-mapping
source share
2 answers

You must annotate overridden methods with @Transient.

http://docs.oracle.com/javaee/5/api/javax/persistence/Transient.html

This annotation indicates that a property or field is not constant. It is used to annotate a property or field of an entity class, a displayed superclass, or a nested class.

Ps As of Hibernate 3, collections are lazy by default, so there is no need to explicitly mark it as lazy.

+15
source share

For others who are faced with this, and the above solution does not work, my mistake was that the name for my setter was wrong; it did not match the properties that it set. What all

+2
source share

All Articles