我有一个抽象类和2个继承它的类。这个类有一个抽象方法
@Transient
public abstract String getFullName();
此方法不应映射到db。但是它导致了一个问题,因为我无法运行我的应用程序。如果我删除它一切正常。那么我如何告诉hibernate忽略这个方法。
两个类中的实现方法相同
@Transient
@Override
public String getFullName() {
return this.getShot().getFullName() + "/" + this.getName();
}
抽象类是这样注释的
@Entity
@Table(name = "Components")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "Type", discriminatorType = DiscriminatorType.STRING)
其他注释在getter方法上,它们工作正常。如果我删除不应该放入db的抽象方法(因此是瞬态的)它一切正常。所以我的问题在于上面的这个抽象方法
给我的错误是
java.lang.RuntimeException:异常构造服务'ValueEncoderSource':调用服务贡献方法的错误org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration,boolean,HibernateSessionSource,Session,TypeCoercer,PropertyAccess,LoggerSource):异常构造service'HibernateSessionSource':调用构造函数public时出错org.apache.tapestry5.internal.hibernate.HibernateSessionSourceImpl(org.slf4j.Logger,java.util.List):无法实例化默认tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
强调原因
引起: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) 在java.lang.reflect.Constructor.newInstance(Constructor.java:525) 在org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105) ......还有87个 引起:org.hibernate.PropertyNotFoundException:无法在类com.bomahabo.flow.domain.project.shot.ShotComponent中找到属性fullName的setter 在org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:262) 在org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:255) 在org.hibernate.mapping.Property.getSetter(Property.java:309) 在org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertySetter(PojoEntityTuplizer.java:304) 在org.hibernate.tuple.entity.AbstractEntityTuplizer。(AbstractEntityTuplizer.java:156) 在org.hibernate.tuple.entity.PojoEntityTuplizer。(PojoEntityTuplizer.java:77) ... 92更多
有什么想法吗?