猿问

如何在 Hibernate 5 中从 xml 创建表?

我在这个文件中保留表架构tableaddress.orm.xml


<?xml version="1.0" encoding="UTF-8"?>

<entity-mappings version="2.1"

    xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <entity class="Address">

        <attributes>

            <basic name="city" attribute-type="String" />

            <basic name="country" attribute-type="int" />

            <basic name="province" attribute-type="double" />

            <basic name="postalCode" attribute-type="boolean">

            </basic>

            <basic name="street" attribute-type="String" />

        </attributes>

    </entity>

</entity-mappings>

这是我尝试使用 Hibernate 创建表的方法


public class App 

{

    public static void main( String[] args )

    {


    Properties prop= new Properties();

    prop.setProperty("hibernate.connection.url", "jdbc:mariadb:......");

    prop.setProperty("dialect", "org.hibernate.dialect.MariaDB53Dialect");

    prop.setProperty("hibernate.connection.username", "user");

    prop.setProperty("hibernate.connection.password", "password");

    prop.setProperty("hibernate.connection.driver_class", "org.mariadb.jdbc.Driver");


     SessionFactory sessionFactory = new Configuration()

             .addResource("tableaddress.orm.xml").addProperties(prop).buildSessionFactory();

     Session session = sessionFactory.openSession();

     session.beginTransaction();

     session.getTransaction().commit();

     session.close(); 

    }

它应该工作,没有编译错误,但由于某种原因没有创建表


错误java.lang.NoClassDefFoundError: javax/transaction/SystemException


郎朗坤
浏览 149回答 1
1回答

鸿蒙传说

这可能是由于 Hibernate 中的错误/功能所致。javax.transaction 已在 5.0.4 中从 Hibernate 中删除(好吧,标记为“已提供”),但它在 5.0.7 中被带回(参见https://hibernate.atlassian.net/browse/HHH-10307:“JTA 不再可传递地提供 (HHH-10178) 导致不使用 JTA 的应用程序出现问题”)因此,假设您使用的是 5.04、5.0.5 或 5.0.6,您的选择是升级 Hibernate,或添加以下依赖项:<dependency> &nbsp;&nbsp;&nbsp;&nbsp;<groupId>javax.transaction</groupId> &nbsp;&nbsp;&nbsp;&nbsp;<artifactId>jta</artifactId> &nbsp;&nbsp;&nbsp;&nbsp;<version>1.1</version> </dependency>
随时随地看视频慕课网APP

相关分类

Java
我要回答