【发布时间】:2021-10-25 16:33:04
【问题描述】:
如果当天是当天的新创建表,我想每天创建一个以完整日期作为表名的新表
我已经看到,当我将 @Table(name="") 名称更改为新字符串时,它会创建一个新表,但我无法自动完成这项工作
@Entity
@Table(name="orders_25_10_2021")
public class game2data {
@Id
private int cid;
private String name;
private Integer address;
private Integer gender;
private String date;
private String Done;
简单来说,我想将@Table(name="") 的名称作为一个根据日期动态传递的变量。
【问题讨论】:
-
我想不出一个解决方案可以让您做到这一点并获得 JPA 抽象的好处。但是,您可以采用裸机路径并编写一些带有无限循环的可运行文件,该无限循环检查时间并每天创建一个新表。或者也许做某种 cronjob 或类似的事情。您能否提供有关您的业务逻辑的更多信息?因为您可能能够以一种您不必编写如此骇人听闻的解决方案的方式重新架构您的数据库。
-
这是不可能的。看起来您正在尝试在 JPA 级别上创建分区。为什么不使用数据库功能?你用的是什么数据库?
-
我正在使用 mysql
-
@Simon Martinelli 简而言之,我想每天自动创建一个具有上述相同列的新表,而无需更改 @Table() 注释中的名称字符串
-
这在数据库世界中被称为分区。请阅读文档。并且应该使用数据库而不是 JPA 来完成(尽管 JPA 根本不能这样做)dev.mysql.com/doc/refman/8.0/en/partitioning.html
标签: spring spring-boot jpa spring-data-jpa