我可以在 Hibernate 实体类中有一个辅助/方便的方法吗? [复制]
Posted
技术标签:
【中文标题】我可以在 Hibernate 实体类中有一个辅助/方便的方法吗? [复制]【英文标题】:Can I have a helper/convenient method inside a Hibernate entity class? [duplicate] 【发布时间】:2017-01-20 17:05:04 【问题描述】:我有一个实体类,里面有一个辅助方法。像这样..
@Entity
@Table(name = "MEMBER", schema = "APP_SCHEMA")
public class Member
private String id;
private String externalMemberId;
@Id
@Column(name = "MEMBER_ID")
public String getId()
return id;
@Column(name = "EXTERNAL_MEMBER_ID")
public String getExternalMemberId()
return externalMemberId;
public String getAbc()
return "abc";
当我在初始化时启动我的 jboss 服务器时出现异常
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: DataDB] Unable to build EntityManagerFactory
Caused by: org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
Caused by: java.lang.reflect.InvocationTargetException
Caused by: org.hibernate.PropertyNotFoundException: Could not find a setter for property **abc** in class com.myapp.model.Member"
为什么不允许我在实体类中使用辅助/便捷方法?为什么期望与属性进行映射?我正在使用带有 Hibernate 和 JPA 的 JBoss 应用程序服务器。
【问题讨论】:
尝试在getter上使用@Transient 【参考方案1】:Hibernate 将您的 getter 方法 getAbc()
解释为应该持久化的 abc
属性的 getter。您可以使用@Transient
注释来标记不应存储在数据库中的字段。或者尝试将注解放到 getter 方法的字段中。
【讨论】:
以上是关于我可以在 Hibernate 实体类中有一个辅助/方便的方法吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate的实体类中为什么要继承Serializable?