首页 > 解决方案 > HIbernate 5 同实体多表

问题描述

我有一个名为 OHLC 的实体,它封装了列列表。而且我有多个表格,以 1 分钟/5 分钟/15 分钟的间隔存储财务数据的刻度。基本上每个表(即 ohlc1min、ohlc5min/ohlc15min)都有相同的数据元组和相同的列名。我没有使用persistance.xml 进行映射。使用 session.save/session.merge 和常用实体 OHLC 时如何映射到不同的表?

实体结构

@Entity
@Table(name = "ohlc1min")
public class OHLC implements Serializable{
    private static final long serialVersionUID = 779384126251139719L;
    private Long id;
    private String stock;
    private Date tickDate;
    private String source;

    private String date;
    private double open;
    private double high;
    private double low;
    private double close;
    private long volume;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }

    @Column(name = "stock", nullable = false)
    public String getStock() {
        return stock;
    }
    public void setStock(String stock) {
        this.stock = stock;
    }
...

控制器:

        try {
          //transaction.begin();

            for(OHLC ohlc : allOHLC) {

                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd  HH:mm:ss");
                ohlc.setTickDate(sdf.parse(ohlc.getDate()));
                //temp = OHLCController.createOHLC(ohlc);
                try {
                    session = HibernateUtil.getSessionFactory().openSession();
                    transaction = session.beginTransaction();
                    session.merge(ohlc);
                    transaction.commit();
                } catch (Exception exp) {
                    transaction.rollback();
                }
            }
            HibernateUtil.shutdown();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

标签: sql-serverhibernatespring-boot

解决方案


推荐阅读