用于动态创建数据库表的任何Java ORM?

时间:2012-12-23 10:29:09

标签: java orm

我们正在考虑从定制代码切换到ORM,以简化代码库并转移到可能更强大的代码。目前,我们有一些“系统”表和可变数量的“自定义”表。这些自定义表对于每个安装都是不同的:客户可能有关于发票的表,另一个可能有关于保险单的表,等等。可以随时添加这些自定义表,并且应该立即可供用户使用。我们在DBO模式之后编写了一堆java类:每个系统表的一个类,以及一个自定义表的泛型类。而且,我们有一个通用的java对象来实例化自定义记录;此类具有通用方法,如Object getProperty(String name)

我们看了几个ORM,但我们找不到任何可以简化这些自定义表的使用。

有没有类似经历的人?感谢。

3 个答案:

答案 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)

使用,您应该专注于拥有一个完整且成熟的对象模型。完成后,将对象映射到关系数据库自然而然。正如'@JB Nizet'的评论所说,你需要拥有所有的对象。因此,重新考虑您的设计并使其适应,无论是还是其他任何内容都可能有用。

有一个名为'Dynamic models'的实验性功能,我不太了解它,因为我没有机会使用它,但我想它可能会给你一些见解。另请注意,此刻它是一个实验性功能,因此将来可能会发生变化。

答案 2 :(得分:0)

您可能想要查看ActiveJDBC。它遵循模型属性到表列的动态映射。查看此处的文档http://javalite.io/setters_and_gettershttp://javalite.io/runtime_discovery