我试图用JPA多表建模,其中所有表都具有相同的结构,但名称不同。] .
- cAfiliadoPMX
- cAfiliadoPMQ
- cAfiliadoQAW
- cAfiliadoBMX
问题是有数百个表,将来可能会更多。
所以我想知道是否有可能做一个通用的Pojo,可以从任何指定名称的表中读取。
@Entity
@Table(name = "afiliado"{PREFIX})
@Data
public class Afiliado implements Serializable {
@Id
@Column(name = "clcuenta")
private int clAccount;
@Column(name="prefijo")
private String prefix="";
}
可以使用参数或者类似的东西
我已经解决了使用EntityManager和Native Query
这是我已经做过的
StringBuilder querySearch = new StringBuilder("SELECT * FROM cafiliado").append(前缀).append(")
SELECT * FROM cafiliado[PREFIX])这是不可能的,但是您可以使用继承来避免重复。
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Data
public abstract class Afiliado implements Serializable {
@Id
@Column(name = "clcuenta")
private int clAccount;
@Column(name="prefijo")
private String prefix="";
}
@Entity
@Table(name = "afiliadoPMX")
public class AfiliadoPMX extends Afiliado {}