java - 使用 JPA 在运行时更改表名称

标签 java hibernate jpa

我实现了一个使用数据库的服务。数据库中的表很少。这些表内部存储一些计算的结果。另一个服务为每个计算创建一个新表,现在表列表如下所示:

  • 计算_1_0
  • 计算_2_0
  • 计算_2_1
  • 计算_2_2
  • 计算_3_0
  • 计算_X_Y

所有表的表结构都相同。

是否可以使用 JPA 从这些表中获取数据,而无需为每个表创建实体?

最佳答案

在运行时创建表是一个坏主意。鉴于您知道列是什么,更好的设计是拥有一个 calculation_type 查找表并在计算表中创建一个外键并为其建立索引。然后您可以预先创建实体并具有更好的关系完整性。

为了直接回答这个问题,不能动态创建新表然后使用 JPA 进行映射。您可以使用普通的 JDBC,但 JPA 不支持它是有原因的 - 这是糟糕的设计。

关于java - 使用 JPA 在运行时更改表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49416669/

相关文章:

oracle - 在 Hibernate Criteria 中使用 ORACLE rowId

java - 在 restful web 服务中访问 HttpServletRequest 对象

java - Spring 4.2 : java. lang.NoClassDefFoundError : Could not initialize class org. springframework.test.web.servlet.result.MockMvcResultHandlers

java - 未使用 Hibernate 和 Spring MVC 定义 Spring Security 名为 'myUserDetailsService' 的 bean

java - 使用Spring时如何注入(inject)多个JPA EntityManager(持久化单元)

java - 如何使用 Hibernate JPA 线程安全地访问数据库?

java - JPA实体可以从接口(interface)方法继承@Version吗?

java - 插入从使用 JDBC 中的 POJO 解析的 JSON 检索的多个记录

来自 Vertx 和 AMQPBridge 的 Java 运行时警告

java - 如何在不使用注释的情况下使用 JAXB 将 java 对象转换为 xml?