Hibernate映射:忽略超类字段

Ami*_*mir 7 java orm hibernate hibernate-mapping

我有一个A级和B级

public class A{
int f1;
int f2;
int f2;
}

public class B extends A{
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在映射到B的表中忽略一个字段,例如'f2'?

Vir*_*ade 5

假设我对您的帖子所做的编辑获得批准,我将尝试回答。在下面的代码中,我使用 AttributeOverride 忽略了类 A 中的字段 f2,即 B 的超类。

@Entity
@AttributeOverride(name = "f2", column = @Column(name = "f2_col", insertable = false, updatable = false)
public class B extends A{
}
Run Code Online (Sandbox Code Playgroud)

如果您想进一步了解它,请参阅AttributeOverride

AttributeOverride with insertable = false,updatable = false应该会有所帮助,但这也取决于您的继承策略。它只是帮助使映射字段从超类瞬态继承,以便其他一些子类可以使用它,但对于此特定子类,它将被忽略。

  • 这只是为数据库表中的列提供了不同的名称,但问题是如何忽略它,类似于使用瞬态变量。 (2认同)