gpt4 book ai didi

java - 使用 JPA 创建对象并将其保存到表中,但将表名称作为参数

转载 作者:行者123 更新时间:2023-12-01 12:37:30 25 4
gpt4 key购买 nike

所以我知道,如果我有一个对象(比如 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 类并手动更改它,但我不知道。

PS;我使用 hibernate 作为 JPA 的实现。

最佳答案

JPA 不支持动态创建和映射新表。它需要动态创建新的 Java 类并动态更新映射元数据。您可以使用 JDBC 或 native 查询执行您想要的任何操作。

有关 fo 的更多信息,请访问 here

关于java - 使用 JPA 创建对象并将其保存到表中,但将表名称作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25458071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com