あなたの助けが必要です。1つのエンティティで3つの同一のテーブルをマッピングする
私はデータベース上で3つのテーブルをpostgresql上で実行しています。それらはまったく同じ構造です。だから私は1つのエンティティでそれらをマッピングできると思った。
私はこれ試してみてください。
@Entity
@Table(name = "stock_tierra")
@SecondaryTables({
@SecondaryTable(name = "stock_bebelandia"),
@SecondaryTable(name = "stock_libertador")
})
public class Stock implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_stock", unique = true, nullable = false)
private int idStock;
@Column(name = "cantidad", nullable = false)
private int cantidad;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_producto", nullable = false)
private Producto idProducto;
@Column(name = "estado", nullable = false)
private boolean estado;
@Column(name = "usuario_creacion", nullable = false)
private int usuarioCreacion;
@Column(name = "usuario_modificacion")
private Integer usuarioModificacion;
@Temporal(TemporalType.DATE)
@Column(name = "fecha_creacion", nullable = false, length = 13)
private Date fechaCreacion;
@Temporal(TemporalType.DATE)
@Column(name = "fecha_modificacion", length = 13)
private Date fechaModificacion;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_sucursal", nullable = false)
private Sucursal idSucursal;
をしかし、私は1つのテーブルに見しようとすると、私は最初のstock_tierra
String stockSucursal = null;
switch (sucursal) {
case 1:
stockSucursal = "stock_tierra";
break;
case 2:
stockSucursal = "stock_bebelandia";
break;
case 3:
stockSucursal = "stock_libertador";
break;
}
Criteria criteria = getSession().createCriteria(Stock.class, stockSucursal);
criteria.add(Restrictions.eq("estado", true));
criteria.addOrder(Order.asc("idStock"));
List<Stock> list = criteria.list();
return list;
から私が間違ってやっているいくつかのアイデアを、データを取得しますか?
注釈でこれを表現する方法がないので、xmlに頼らなければなりません。 –