gpt4 book ai didi

hibernate - 使用带有嵌入式 derby 的 hibernate

转载 作者:行者123 更新时间:2023-12-03 21:17:10 24 4
gpt4 key购买 nike

我想用 hibernate 嵌入式 Derby 独立应用程序 ,我有一些问题:

  • 我需要什么 jar ?
  • 什么是必要的 hibernate 配置?
  • 还有其他必要的配置吗?
  • 查询/标准是否有任何问题/限制?

  • 如果您还可以为我推荐一些关于这种方法的好教程,那将是更可取的,提前致谢。

    最佳答案

    我使用 Apache Derby 和 Hibernate 来测试我项目的模型类之一(它们的等号、hashCode 实现、查询等)。 MySQL用作生产数据库。我选择 Derby 而不是 HSQLDB ,因为我遇到了与 Hibernate 和 HSQLDB 的一些不兼容,这意味着,鉴于我的实体(它们的名称、模式、键)和它们的关系,Hibernate 无法在 HSQLDB 中创建我的数据库模式,而它可以与 Derby。也就是说,也许我搞砸了一些事情;也可以解决不兼容问题。

    无论如何,这是我在测试中使用的内容(我修改了 pom.xml,以便它将 Derby 作为运行时依赖项包含在内并运行单个测试,以确保它正常工作)。
    pom.xml

    <dependencies>                                      
    ...
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.6.8.Final</version>
    </dependency>
    <dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.8.2.2</version>
    <scope>runtime</scope>
    </dependency>
    <!--
    an slf4j implementation is needed by
    hibernate so that it could log its *stuff*
    -->
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.4</version>
    <scope>runtime</scope>
    </dependency>
    ...
    </dependencies>
    persistence.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <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_2_0.xsd"
    version="2.0">
    <persistence-unit name="test">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>Test</class>
    <properties>
    <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
    <!--
    if you don't have a database already created
    append ;create=true to end of the jdbc url
    -->
    <property name="javax.persistence.jdbc.url" value="jdbc:derby:test"/>
    <property name="javax.persistence.jdbc.user" value="root"/>
    <property name="javax.persistence.jdbc.password" value="root"/>
    <!--
    if you just created the database, maybe
    you want hibernate to create a schema for you

    <property name="hibernate.hbm2ddl.auto" value="create"/>
    -->
    </properties>
    </persistence-unit>
    </persistence>
    Test实体
    @Entity
    @Table(name = "test")
    public class Test {

    @Id
    public int id;

    @Basic
    public String data;
    }

    测试
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("test");  
    EntityManager em = emf.createEntityManager();
    EntityTransaction tx = em.getTransaction();

    Test test = em.find(Test.class, 1);
    if (test == null) {
    test = new Test();
    test.id = 1;
    test.data = "a";

    tx.begin();
    em.persist(test);
    tx.commit();
    }

    System.out.format("Test{id=%s, data=%s}\n", test.id, test.data);

    em.close();
    emf.close();

    关于hibernate - 使用带有嵌入式 derby 的 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459284/

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