gpt4 book ai didi

java - Java 客户端应用程序中 persistence.xml 的位置

转载 作者:行者123 更新时间:2023-11-30 04:16:26 26 4
gpt4 key购买 nike

我是 Hibernate 的新手。为了通过 EntityManager 获取事务,我需要使用 EntityManager Factory。当我将此代码块放在我的文件中时:

EntityManagerFactory entityManagerFactory = Persistence
.createEntityManagerFactory("Comment");

EntityManager entityManager = entityManagerFactory.createEntityManager();

EntityTransaction transaction = entityManager.getTransaction();

transaction.begin();
entityManager.persist(obj);
transaction.commit();

我遇到了这个异常:

javax.persistence.PersistenceException:没有名为 Comment 的 EntityManager 的持久性提供程序

然后我意识到我需要添加一个 persistence.xml 文件:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="QuestionsComments" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>Comment</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/sogdb"/>
<property name="hibernate.max_fetch_depth" value="3"/>
</properties>
</persistence-unit>
</persistence>

实际上,我使用的应用程序不是服务器上的 Java 应用程序(我有一个客户端应用程序)。这意味着不存在包含 persistence.xml 文件的 META-INF 文件夹。

我的问题是:

1- 我需要将 persistence.xml 文件放在哪里?

2-下面的代码可以吗?知道我在数据库中的表是 QuestionsComments,而使用 Hibernate 与其相关的类是 Comment

最佳答案

如果您使用 Eclipse,则将 JPA 方面添加到您的项目中可以让 Eclipse 为您完成这些设置。它将创建 META-INF 文件夹,并可以在其中生成 stub persistence.xml 文件。您不必在服务器上运行代码即可在 jar 文件中包含 META-INF 文件夹。

当您创建EntityManagerFactory时字符串参数应该是持久性单元的名称。我建议在实体类中使用注释来指定表名称、id 列等。

编辑:固定链接。

关于java - Java 客户端应用程序中 persistence.xml 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18235256/

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