我的申请中有一个要求。我的表不会事先定义。
例如,如果用户创建的名称的表单Student,并增加了它的属性,如姓名,不滚,主题类等,然后在运行时,应该有通过名称创建一个表student的列name,roll no,subject,class等以及其相关类及其 Hibernate 映射文件。
有没有办法这样做?
提前致谢,
Rima Desai
这是可能的,但尚不清楚为什么要这样做,因此很难提出任何具体的解决方案。
但一般来说,是的,您可以根据某些输入动态生成数据库表、休眠类和映射。最简单的方法是使用一些模板引擎。我过去使用过Velocity,它非常适合这项任务,但如果您想尝试的话,还有其他方法。
编辑:
根据 OP 说明,更好的方法是使用 XML 来存储用户定义的数据。上述解决方案很好,但无论表单是否更改,都需要重新编译应用程序。如果您不想在每次用户编辑后停止并重新编译,那么 XML 是更好的答案。
为了给您一些先机:
@Entity
public class UserDefinedFormData {
@Id
private long id;
@ManyToOne
private FormMetadata formMetadata;
@Lob
private String xmlUserData;
}
Run Code Online (Sandbox Code Playgroud)
给定表单的定义,保存和加载保存为 XML 的数据将变得很简单。
如果您需要更多说明,请添加评论。
| 归档时间: |
|
| 查看次数: |
19485 次 |
| 最近记录: |