我的数据库st_tickets_1,st_tickets_2,st_tickets_3等中有类似的表,可以根据需要生成。我想将这些表映射到单个实体。但是我无法映射,因为我必须将静态表名放在实体@Table(“st_tickets_1”)上。
截至目前我正在使用Spring JDBC模板。
答案 0 :(得分:1)
您可能会发现有用的休眠继承功能:
https://marcin-chwedczuk.github.io/mapping-inheritance-in-hibernate
因此可以创建包含id和公共字段的抽象实体:
@MappedSuperclass
public abstract class Ticket {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
不同表的实现:
@Entity
@Table(name = "st_ticket1")
public class Ticket1 extends Ticket {
}
@Entity
@Table(name = "st_ticket2")
public class Ticket2 extends Ticket {
}
比从数据库读取实现实例并将它们转换为Ticket
抽象以将其用于业务逻辑。