java - 使子类属性变为 transient

标签 java hibernate

我有一个 A 类,它由 B 子类扩展。 使 B 继承自 A transient 的属性之一并且不为 B 类保留的最佳方法是什么?

使用 hbm xml 进行配置时, transient 字段不会以任何方式指示,只是从 xml 中省略,这与使用注释和 @Transient 注释不同。

这是使 x 暂时且不持久存在于 B 的有效解决方案吗?

public class A{    
  private Long x;
  private Long y;    

  public Long getX() {return x;}
  public Long getY() {return y;}
}

public class B extends A{    
  private Long z; 
  private transient Long x; 

  public Long getZ() {return z;}
  public Long getX() {return x;}
}

最佳答案

如果您使用 XML 配置,则可以利用 insert="false"update="false" 属性:

<hibernate-mapping>
    <class name="name.of.thepackage.containing.B" table="b">
        <id name="id" type="java.lang.Long">
            <column name="id" />
            <generator class="identity" />
        </id>
        <property name="z" type="java.lang.Long" />
        <property name="x" type="java.lang.Long" insert="false" update="false" />
    </class>
</hibernate-mapping>

这些属性意味着该字段不会在 INSERTUPDATE SQL 语句中使用。

关于java - 使子类属性变为 transient ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27277233/

相关文章:

用于 fiddler 文件的 Java API

java - 使用 TaskExecutor 提交后`TransactionSynchronizationManager` 内的事务

hibernate - hibernate 核心和注释 jar 中的版本差异

java - Hibernate查询缓存问题

java - Hibernate 是否缓存新创建的实例

使用 thymeleaf 的 Java spring-boot 登录示例代码

java - 将 Node.js Web 客户端连接到 Java gRPC 服务器时出错

java - 将 RTF 文件转换为 DOC

java - 修剪文件名足够短

java - 根据更多条件向条件添加多个参数