我有要求让用户创建自己的表并在应用程序内部动态创建自己的表单。可以想象可以有 3 个单独的表:user_relations、user_relation_fields、user_relation_field_values。它们一起可以满足要求。但显然涉及到这样的解决方案,每个选择都需要很多连接。动态创建表很容易,并且很容易从用户定义的字段集动态创建 CRUD SQL 语句。我更喜欢使用注释(而不是配置 XML 文件),因此可能不需要动态更新配置文件。
问题是 - 如何创建 ORM (JPA, Spring Repository) 映射到动态创建的表。是否可以动态创建实体并将它们作为已运行应用程序的一部分插入?是否可以动态创建facelets页面的代码然后插入到应用程序中?是不是很好的做法。
许多 ERP 类型的应用程序允许某种弹性域或可扩展性功能,因此这应该是可能的。
我听说 Grails 是具有元编程功能的动态 Java,也许在 Grails 中创建这样的应用程序更合适(特别是因为它使用 Spring 和 Hibernate)?
欢迎任何提示或建议。我想应该可以做到,但一些初步的想法会有所帮助。谢谢!
最佳答案
我想知道为什么人们需要所有这些模式、设计模式等等。有时最好从较低级别写一些东西。你的任务是很好的案例。在我看来,最好在没有映射的情况下用纯 jdbc/hql 编写这个模块。值得考虑数据库类型。在基于关系的数据库中实现动态实体并不容易。也许 NoSQL 数据库会是更好的选择。
关于java - 在 Java 或 Grails 应用程序中动态创建实体、Spring 存储库和 facelets 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705597/