我们正在考虑从定制代码切换到ORM,以简化代码库并转移到可能更强大的代码。目前,我们有一些“系统”表和可变数量的“自定义”表。这些自定义表对于每个安装都是不同的:客户可能有关于发票的表,另一个可能有关于保险单的表,等等。可以随时添加这些自定义表,并且应该立即可供用户使用。我们在DBO模式之后编写了一堆java类:每个系统表的一个类,以及一个自定义表的泛型类。而且,我们有一个通用的java对象来实例化自定义记录;此类具有通用方法,如Object getProperty(String name)
。
我们看了几个ORM,但我们找不到任何可以简化这些自定义表的使用。
有没有类似经历的人?感谢。
答案 0 :(得分:1)
对于查询映射器框架而言,它可能比ORM更好。
例如,使用MyBatis,您甚至可以动态映射表名(请参阅Setting the FROM clause via parameter in MyBatis)
<select id="getLookupRows" parameterType="map" resultMap="lookupMap">
select id, name, active, valid
from ${table}
</select>
答案 1 :(得分:0)
使用orm,您应该专注于拥有一个完整且成熟的对象模型。完成后,将对象映射到关系数据库自然而然。正如'@JB Nizet'的评论所说,你需要拥有所有的对象。因此,重新考虑您的设计并使其适应orm,无论是hibernate还是其他任何内容都可能有用。
hibernate有一个名为'Dynamic models'的实验性功能,我不太了解它,因为我没有机会使用它,但我想它可能会给你一些见解。另请注意,此刻它是一个实验性功能,因此将来可能会发生变化。
答案 2 :(得分:0)
您可能想要查看ActiveJDBC。它遵循模型属性到表列的动态映射。查看此处的文档http://javalite.io/setters_and_getters和http://javalite.io/runtime_discovery。