gpt4 book ai didi

java - 当子类只有一个 @Transient 字段时,扩展 @Entity 的最佳方法

转载 作者:行者123 更新时间:2023-12-01 10:10:51 25 4
gpt4 key购买 nike

我有一个父类(super class),它是一个@Entity,如下所示:

@Entity
@Table(name = "utente")
public class Utente implements Serializable{
...
}

子类只有一个 @Transient 字段,此外:

@Entity
public class UtenteSub extends Utente{
@Transient
private String newField;
}

为了使其正常工作,我应该添加 @DiscriminatorValue@Inheritance 并在表中添加一个字段。

这是很多工作要做,考虑到我在子类中需要的只是一个 @Transient 字段(我需要它在“提交”后“检查”对象 Utente “以某种形式)。

在我的场景中是否有更好、更简单的方法来扩展 @Entity

谢谢。

最佳答案

您可以尝试创建一个抽象基类 UtenteBase:

@MappedSuperClass
public abstract class UtenteBase implements Serializable
{
//all mapped columns go here
}

之前在 Utente 中的所有映射列现在都属于此类。然后,您可以使用上面提到的两个类来扩展此类:

@Entity
@Table(name = "utente")
public class Utente extends UtenteBase
{
public Utente {}
}

@Entity
@Table(name = "utente")
public class UtenteSub extends UtenteBase
{
@Transient
private String newField;
}

Utente类是具体实现类,用于与数据库通信。这两个类都位于同一继承树中,您不需要添加 DiscriminatorValue 并更改表。

关于java - 当子类只有一个 @Transient 字段时,扩展 @Entity 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36128819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com