java - Hibernate 模板中的动态表创建

标签 java mysql hibernate spring

我正在使用 HibernateTemplate + SpringFramework 导入股票报价数据

数据格式

AAPL,09-Jun-2010 09:00,251.47,251.47,251.39,251.39,640
AAPL,09-Jun-2010 09:01,251.4,251.4,251.05,251.26,6844
INTC,09-Jun-2010 09:00,251.47,251.47,251.39,251.39,640
INTC,09-Jun-2010 09:01,251.4,251.4,251.05,251.26,6844
MSFT,09-Jun-2010 09:00,251.47,251.47,251.39,251.39,640
MSFT,09-Jun-2010 09:01,251.4,251.4,251.05,251.26,6844

我有一个名为 Stock 的实体类

@Entity
public class Stock implements Serializable {
public Stock() {}

private Long id;
private BigDecimal open;
    .... close,high, low..etc
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
    ....

此设置的问题是 hibernate 会将所有内容放入名为“Stock”的表中。

我想将不同的股票分成不同的表,因此根据上面的数据,我最终将得到 3 个表(AAPL、MSFT、INTC)

有没有一种简单的方法可以做到这一点,而无需在 Hibernate/HibernateTemplate 中手写 sql 语句?有点动态创建表?

环境: - Mysql、Hibernate3.5.3、springframework3.0

最佳答案

I want to separate different stock into a different table, so with the data above I will end up having 3 tables (AAPL, MSFT, INTC)

然后要么引入继承层次结构(使用 JOINED 或 TABLE_PER_CLASS 策略)并保留适当的子类型,要么使用 horizontal partitioning (但这需要一些测试,我从未使用 MySQL 和 Hibernate 这样做过)。

关于java - Hibernate 模板中的动态表创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3217767/

相关文章:

java - 为什么我必须创建 int 数组而不是直接传递一个作为参数?

java - JSON Jackson,如何使用只读属性别名来实现向后兼容性?

java - 如何通过基于 Java 的配置在 Hibernate 中的查询上使用分页

java - 从hibernate中的多个表中检索数据

java - 为什么 Hibernate 会重复对象,尽管数据库表不包含重复行?

java - Glassfish server4 1 上的 sqljdbc4 2

java - 链表和指针插入列表的冗余序列化

mysql - 是否可以通过主键合并两个表?

php - 启用复选框并按编辑按钮并在弹出窗口中打开

php - 以表单上传图片和视频,并将数据存储到mysql中