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 个属性 namemodel,我会使用 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 查询语言中的类未映射异常?

org.hibernate.MappingException:关联引用未映射的类:empresa.Empleados

Spring WebFilter 映射

如何使用 JPA 和 Hibernate 映射计算的属性

在 NHibernate 中查询未映射的列