【发布时间】:2019-05-07 08:32:53
【问题描述】:
我不是休眠方面的专家,但我正在尝试使用 Scala 来学习它。到目前为止,我只能找到 Java 的 hibernate 文档,但没有 scala。
我的困惑是什么时候应该使用 persistence.xml,什么时候应该使用 hibernate.cfg.xml。
我有这个疑问,因为我看到了这两个例子,我的代码有时抱怨找不到persistence.xml,当它找到它时又抱怨找不到休眠属性......所以我感到困惑。我觉得 Scala/Java 或不同标准之间有一种摩擦……
有什么建议吗?
这是我的主要应用:
package nl.busa.jpa
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
object HibernateJpaScalaTutorial {
var entityManagerFactory: EntityManagerFactory = Persistence.createEntityManagerFactory("nl.busa.jpa.HibernateJpaScalaTutorial")
var entityManager: EntityManager = entityManagerFactory.createEntityManager()
def main(args: Array[String]) {
entityManager.getTransaction().begin()
entityManager.persist(new Buddy("Natalino", "Busa"))
entityManager.persist(new Buddy("Angelina", "Jolie"))
entityManager.persist(new Buddy("Kate", "Moss"))
entityManager.getTransaction().commit()
entityManager.getTransaction().begin();
val allBuddies = entityManager.createQuery("From Buddy", classOf[Buddy]).getResultList
println(allBuddies);
entityManager.close();
}
}
这是我的 hibernate.cfg.xml
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="hibernate.cfg.xml">
<property name = "hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name = "hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name = "hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name = "hibernate.connection.username">root</property>
<property name = "hibernate.connection.password"></property>
<property name="hibernate.hbm2ddl.auto">create"</property>
</session-factory>
</hibernate-configuration>
我的错误信息是这样的:
在类路径中找不到任何 META-INF/persistence.xml 文件
【问题讨论】:
-
在what is the purpose of two config files for Hibernate? 上有一些关于persistence.xml 和hibernate.cfg.xml 用途的详细信息。 EntityManager 和所有相关类都来自 JPA 库,因此persistence.xml 查找