【发布时间】:2016-07-08 00:18:48
【问题描述】:
我已经在数据库中创建了表。
即数据库是第一位的。
数据库结构可以改变。
我不想自己为此结构重写 ORM 字段。我不想使用任何工具(如 Hibernate 或 JPA 工具)重新生成任何映射。
即任何数据库反射都应该在运行时进行。
在这种情况下,我还能从 Spring Data JPA、Hibernate、jOOQ 等任何 ORM 库中获得一些好处吗?
我还是更喜欢一些像这样的吸气剂
public Object get(String fieldName);
和像二传手这样的人
public void set(String fieldName, Object fieldValue);
例如,这是在Apache's DynaBean 中实现的。
同时我希望Active Record 即对象实例代表数据库记录。
这可能吗?
【问题讨论】:
-
“在 Java 中没有硬编码表结构”是什么意思?您不想使用任何注释?
-
仅可选。如果我愿意,我会声明一个属性并对其进行注释。但如果没有,我应该能够拥有动态属性。从数据库中读取的任何记录都应包含动态 getter 可访问的所有字段。
-
“动态属性”,“动态吸气剂”?你不会使用标准的 POJO 类来记录吗?
-
因为我不想在每次数据库结构更改时重构它们。
-
假设我添加了新字段或重命名了旧字段。我不想重构和重新编译我的应用程序。
标签: java activerecord orm jooq spring-orm