实体类中的所有实例变量是不是都在数据库中持久化? [复制]

Posted

技术标签:

【中文标题】实体类中的所有实例变量是不是都在数据库中持久化? [复制]【英文标题】:Are all instance variables in an entity class persistent in the database? [duplicate]实体类中的所有实例变量是否都在数据库中持久化? [复制] 【发布时间】:2019-02-19 22:08:46 【问题描述】:

实体类中的所有实例变量是否都持久存在于数据库中?或者实体中的某些变量是否可能是非持久的?

【问题讨论】:

当然要用瞬态注解关键字。 默认情况下它们是持久的。如果在变量上添加@Transient 注解,它是非持久的。 互联网上有很多 JPA API 文档,他们都会解释这一点。也许读过它们?例如datanucleus.org:15080/products/accessplatform_5_2/jpa/… 【参考方案1】:

当然,你可以使用@Transient注解。例如:

class MyClass

    private int id;
    private String name;

    @Transient
    private int identity;

这里,identity 字段是临时的,在数据​​库中不是持久的。

这意味着如果一个变量被标记为@Transient,那么它将不会被添加 在数据库中。它没有此变量的持久性表示 在那个休眠会话中。会话关闭后,这些瞬态 对象将被垃圾回收销毁。

【讨论】:

以上是关于实体类中的所有实例变量是不是都在数据库中持久化? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何持久化实体类中的数据并结合数据传输对象?

java中transient的用法

Symfony2/Doctrine:如何从实体类中持久化一个实体?

Hibernate框架学习2

Hibernate框架的学习-第二天

JAVAEE学习笔记hibernate02:实体规则对象状态缓存事务批量查询和实现客户列表显示