Hibernate:在我的类中添加一个未映射到数据库表的属性
Posted
技术标签:
【中文标题】Hibernate:在我的类中添加一个未映射到数据库表的属性【英文标题】:Hibernate: Add a property in my class that is not mapped to a db-table 【发布时间】:2011-04-29 20:02:20 【问题描述】:我有一个表 tbl_sky
有 2 个属性 name
和 model
,我会使用 Hibernate 注释;
@Entity
@Table(name="tbl_sky")
public class Sky implements Serializable
private String name;
private String model;
private String status;
@Id
public String getName()
return name;
.
.
.
但我需要再添加一个属性status
,该属性在表中不存在但在类中需要。我如何声明该属性,以便在我的类中而不是在我的数据库表中拥有它?
感谢所有帮助。
【问题讨论】:
在没有任何注释的情况下试一试。 无论如何它都会将其映射为“状态” 【参考方案1】:使用@Transient
注释您不打算存储在数据库中的字段:
@Transient
public String getStatus()
return status;
或:
@Transient
private String status;
【讨论】:
它可以在 getter 上,也可以在字段本身上。【参考方案2】:将其标记为@Transient
,它不会成为数据库架构的一部分。
【讨论】:
【参考方案3】:如果您使用@Transient
注释字段,它将不会被持久化。
【讨论】:
以上是关于Hibernate:在我的类中添加一个未映射到数据库表的属性的主要内容,如果未能解决你的问题,请参考以下文章
Java:如何解决 Hibernate 查询语言中的类未映射异常?