java - 是否可以在运行时从数据库模式生成 JPA 实体类?

标签 java hibernate jpa code-generation persistence

像 Netbeans 这样的 IDE 允许通过持久性上下文生成实体类。如果您可以访问底层生成方法(不确定它是外部工具还是 IDE 的一部分),您可以在运行时动态生成数据库实体类吗?这个想法是您可以挂接到使用反射的实体类。

我知道您可以采用另一种方式,从实体类生成数据库,但是由于我工作环境中的权限问题,这是行不通的。但是,如果您反转该过程并从数据库中提取类,这在我的环境中可能是可行的。这个想法是数据库将作为一个配置/控制点。

最佳答案

理论上可行,但有什么意义呢? Java 是静态类型的,因此您能够通过反射使用生成的类,并且您无法赋予它们行为,因此删除了对象关系映射的全部要点。将数据加载到 map 或仅使用 SQL 记录集会更方便。

如果您有一个现有的架构,您可以编写按照您的应用程序需要的方式运行的类,并以声明方式将它们映射到架构上。这样,代码就是应用程序逻辑的最简单表达,并且与持久性无关。

关于java - 是否可以在运行时从数据库模式生成 JPA 实体类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870831/

相关文章:

java - 如何从 jsp Spring MVC 访问 ModelMap 对象中包含的映射键/值对

java - 带有元组条件的 QueryDSL 和 SubQuery

java - 是否可以仅按需动态触发调用@PostLoad 方法

java - 在Hibernate中对于composite-id,为什么类应该实现Serialized

java - 何时以及如何使用 hibernate 二级缓存?

database - JPA : best practices with unidirectional OneToMany

java - 如何在 JPA 中删除具有多对多关系的实体(以及相应的连接表行)?

java - R 和 Java + WEKA 在计算最近邻方面的差异

javascript - 在 Java 6 中调用 ImportClass

java - 计算具有较大 xy 值的点之间的距离