所以我知道,如果我有一个对象(比如 Message
对象)正确注释,我可以这样做:
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(databaseName);
EntityManager entityManager = entityManagerFactory.createEntityManager();
EntityTransaction transaction = entityManager.getTransaction();
try {
transaction.begin();
Message msg = new Message("Message");
entityManager.persist(msg);
transaction.commit();
}
并且该表将使用 Message
注释中的任何值创建。在本例中,假设 Message
的对象具有表名称的注释:
@Table(name = "tableMessage")
因此,将创建表tableMessage
,并将Message
对象保存到表tableMessage
中。
我的问题是,假设我有一个文本字段,用户将在其中输入表的名称,以保存消息对象(如果不存在则创建表)。
我该怎么做?如果我事先知道,我可以转到 Message
类并手动更改它,但我不知道。
最佳答案
JPA
不支持动态创建和映射新表。它需要动态创建新的 Java 类并动态更新映射元数据。您可以使用 JDBC 或 native 查询执行您想要的任何操作。
有关 fo 的更多信息,请访问 here
关于java - 使用 JPA 创建对象并将其保存到表中,但将表名称作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25458071/