【发布时间】:2018-05-11 05:57:59
【问题描述】:
目前我正在进行一个项目,我需要将上传的 Excel/CSV 文件保存到数据库表中。 对于每个上传的文件,应该创建一个具有相同结构(+一些技术列)的新表。 在此之后,数据库表将在网页中显示为 HTML 表。此表将为每个数据集提供基本的 CRUD 功能。
现在我正在决定是直接使用 JDBC 函数还是使用 JPA,在我看来这会更“干净”。第二步,我想通过 OData 和 Olingo 框架发布这些数据。
但我不知道应该如何使用 JPA 函数构建这个通用表结构(每个 Excel 可能有一组非常不同的列)。我的用例中没有静态 POJO 结构。
你们中是否有人知道如何在不知道最终结构的情况下使用 Hibernate 对我的用例进行建模?
第二个想法是构建一个具有以下属性的通用 POJO
- (字符串)表名
- (列出)列
- (列出)数据集
但是使用这种结构,整个数据集总是会更新。当一个表可能有数十万个条目时,这不是一个好的解决方案。 使用像 Mongo 这样的数据库也不是解决方案,因为这个项目需要关系数据库(用于进一步的用例)。否则我可以通过 json 持久化这个 excel。
您好!
【问题讨论】:
-
Eclipselink 具有动态实体(非 JPA 标准,作为扩展)。一般来说,JPA 没有很好地准备好未知表
-
查看 Hibernate 的实体动态 MapMode。它基本上允许您为应该存储的数据指定表名和键/值对映射。这应该非常适合您的用例。
-
谢谢!我将深入研究动态地图模式。