当前位置: 首页 > 知识库问答 >
问题:

从Hibernate迁移到持久性

诸葛文博
2023-03-14

我正在使用Maven和JPA编写一个项目(不是web应用程序!)。

我编写了带注释的实体类和CRUD服务类。但是现在,我需要使用javax.persistence.entityManager而不是org.hibernate.session来执行这些CRUD操作。

我使用Hibernate作为JPA提供程序,并且在resources文件夹下的Hibernate.cfg.xml上配置了所有内容,目前运行正常。

我知道为了创建EntityManagerFactory

entityManagerFactory entityManagerFactory=Persistence.createEntityManagerFactory(persistenceUnitName),

那么我必须在META-INF下使用persistence.xml,但我没有这个XML。

这是我的hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
        <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
        <property name="hibernate.connection.url">jdbc:derby:D:/db/derby/svn;create=true</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>
        <property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property> <!-- org.hibernate.context.internal.ManagedSessionContextThreadLocalSessionContext -->
        <property name="hibernate.hbm2ddl.auto">create</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>

    <mapping class="entity.Pe" />
    <mapping class="entity.Us" />
    <mapping class="entity.Te" />
</session-factory>
</hibernate-configuration>

共有1个答案

有骏奇
2023-03-14

persistence.xmlhibernate.cfg.xml非常相似。接下来,你可以找到一个非常简单的比较。

我认为“只需创建一个文件夹META-INF并在其下放置等效的persistence.xml”就可以解决这个问题。文件夹必须声明在项目的注册源文件夹中,通常是src/main/resources/meta-inf

那么您可以执行这一行:

EntityManagerFactory emf =
     Persistence.createEntityManagerFactory("YourPersistenceUnitNameHere")
 类似资料:
  • 我正在寻找从经典Akka持久化迁移到Akka持久化类型。在这里找到的Lagom留档:1说“注意:从Lagom持久化(经典)迁移到Akka持久化类型时的唯一限制是需要完全关闭集群。即使所有持久数据都是兼容的,Lagom持久化(经典)和Akka持久化类型也不能共存。” 有人知道这是否适用于服务器可能知道的所有持久实体吗?例如,我使用的服务有3个独立的持久实体。我需要一次迁移所有3个,还是可以一次迁移一

  • 我正在从3迁移到Hibernate 5.0.3.final。在3.x中,我使用joda-time在oracle DB中持久化LocalDateTime。现在我看到Hibernate5不支持Joda-Time。请告诉我最好的选择是什么? 下面是代码示例。

  • 问题内容: 我正在将应用程序从Hibernate 3迁移到Hibernate5。我们使用class来获取。因此,使用对象来获取数据库表列信息,例如列大小,类型..etc。似乎在Hibernate 5 类中已弃用(已删除!)。Hibernate 5中是否有其他上课的选择?否则如何进入Hibernate 5 env? 问题答案: 当我们转向一种新的模式工具方法时,它在5.0中已被删除。Database

  • TLDR:目前通过数据库直接CRUD回购“保存”等方式管理数据(见下面的示例)。许多人说应该使用REST,但使用CRUD直接方法建立了超过3个数据库的45个表。是否值得花时间移植到REST方法??注意:该应用程序在公司内部使用,但有许多用户,仅供参考,如果安全是你的建议中的一个因素。 我不是术语学方面的佼佼者,因此在高级课程中,我将提供我目前使用的术语的示例。 我的工作是让承包商在3-4年前创建一

  • 问题内容: 我们的Oracle数据库遇到了严重的性能问题,我们想尝试将其迁移到基于MySQL的数据库(直接使用MySQL,或者最好是Infobright)。 问题是,在我们实际上不知道新数据库的所有功能是否符合我们的需求之前,我们需要让旧系统和新系统至少重叠数周(如果不是几个月)。 因此,这是我们的情况: Oracle数据库由多个表组成,每百万行。白天,实际上有成千上万的语句,我们无法停止迁移。

  • 问题内容: 在我的应用程序中,我从UIWebView迁移到WKWebView,如何为WKWebView重写这些功能? 和 问题答案: UIWebView => WKWebView等效 关于您可以写: 对于: