Hibernate/JPA-仅当表中存在字段时才插入字段



我正在寻找一个答案,如果在休眠状态下可能或不可能。我试图实现的是,如果一个字段存在于一个特定的表中,那么只有它应该插入它。否则,就忽略@Entity类中的字段

我希望这是一个新字段,它将引入我们正在使用的一个表中,并且有许多依赖组件,它们现在将数据插入该表中。我不想大爆炸。想要这样的东西不会影响旧版本,以及当升级和引入新列时,它也应该可以工作。

例如

@Entity
@Table(name = "EMPLOYEE_RECORDS")
public class Employee
{
@Id
@Column(name = "employee_id")
private Integer employeeId;
@Column(name = "employee_name")
private String employeeName;
@Column(name="address")
private String address;
}

如果我只想在表EMPLOYEE_RECORDS中存在列(地址(时才将地址字段插入DB,该怎么办。如果这是显而易见的,请原谅我,因为我对Hibernate不是很精通。

请允许我解释一下我的想法(但不确定它是否也能起作用(-
1。创建两个不同的@Entity类。尝试插入,如果插入失败,则在运行时切换@Entity并在没有地址的情况下使用
2.通过简单查询检查表中是否存在字段,如果失败,请使用@Entity无地址,否则使用无地址。

我对这个场景感到非常困惑——似乎在系统中的组件解耦方面存在更深层次的问题。

尽管如此,您可以在数据库中添加列,但不需要在hibernate实体中声明字段。另一方面,不可能在hibernate实体中有一个可选字段。字段已映射或未映射。

最新更新