【问题标题】:what happens in hibernate if i give a column tag for a transient variable?如果我为瞬态变量提供列标记,休眠中会发生什么?
【发布时间】:2014-12-04 23:14:36
【问题描述】:

如果我给一个瞬态变量一个列标签,在休眠中会发生什么?

@Table(name="team")
public class Team extends BaseObject implements Serializable {

@Id  @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

@Column(length=50)
private String name;

@Column(length=10)
private String code;

@Column(name = "agency_id")
private Long agencyId;

@Column(name = "agency_name")
private transient String agencyName; 



}

【问题讨论】:

  • 您是在谈论private transient String agencyName; 所暗示的transient(关键字)。如果是这样,该字段将不会被序列化。但是,如果您正在谈论注解 @Transient (javax.persistence.Transient),则该字段将不会被持久化到数据库中(也不会检索其值 - 不用说)。

标签: java hibernate transient


【解决方案1】:

字段不是持久的。您不会从数据库中获取字段值,不会提交更改。

JSR 220 Specification

如果实体具有基于字段的访问权限,则持久性提供程序运行时直接访问实例变量。所有未使用 Transient 注解的非瞬态实例变量都是持久的。

【讨论】:

    猜你喜欢
    • 2015-02-09
    • 2019-06-02
    • 1970-01-01
    • 2014-12-13
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2021-11-13
    相关资源
    最近更新 更多