java - Hibernate Transient Extends问题

标签 java hibernate orm jpa

@MappedSuperclass
public abstract class BaseAbstract implements Serializable{

 private static final long serialVersionUID = 1L;

 protected String test = //some random value;

 public String getTest() {
  return test;
 }

 public void setTest(String test){
  this.test = test;
 }
}


@Entity
public class Artist extends BaseAbstract
{
  private static final long serialVersionUID = 1L;
  private Integer id;

        @override
 @Transient
 public String getTest() {
  return test;
 }
.....
}

我的问题是...当我尝试对艺术家进行任何操作时,连同 id 和名称,测试也会被保存,但事实并非如此...

如果我在 baseabstract 类 getTest() 方法上添加相同的 transient ,我会看到未创建测试列(理想情况下应该发生什么)但是如果我尝试通过在子类中添加注释来覆盖该方法,它会创建测试栏...

我不知道为什么会这样,因为当 hibernate 创建艺术家对象并检查注释时,它应该看到艺术家方法的 getTest() 上存在的 transient 注释......并且不应该在数据库中创建列...

如果您需要任何说明,请告诉我......

非常感谢对此的任何回应....

谢谢

最佳答案

当您将父类标记为@MappedSuperclass 时,您是在说

Persist its properties for each subclass

由于您的父类是抽象(您不能实例化一个抽象类),请执行以下操作

@MappedSuperclass
public abstract class BaseAbstract implements Serializable {

    @Transient
    public String getTest() {

    }

}

并且如果您不想保留您的子类 getTest 属性,请重做

@Entity
public class Artist extends BaseAbstract {


    @Transient
    public String getTest() {

    }

}

没有别的!

关于java - Hibernate Transient Extends问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2598393/

相关文章:

python - 修补 Django 中的多个 ORM 调用

java - 如何在 java 中检查 MatOfKeyPoint?

java - 通过 Hashmap 进行搜索并将结果添加到列表中

java - hibernate 。如何正确组织带有注释的一对多关系?

java - 如何在 spring 项目中使用自定义注释(hibernate)加密/解密数据

hibernate - jpa 中 id 的一对一损坏列映射?

design-patterns - 域对象应该包含其映射器吗?

java - 在 Java 中使用嵌套 for 循环时避免 ConcurrentModificationException

java - java如何存储float v double

python - 使用 peewee 为带有外键的表创建唯一索引