WildFly + Hibernate [英] WildFly + Hibernate

查看:170
本文介绍了WildFly + Hibernate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在努力配置Hibernate并在WildFly上运行它。

I've been struggling for days with configuring Hibernate and run it on WildFly.

这是我的代码:

META-INF / persistence.xml

META-INF/persistence.xml

<persistence version="1.0"
         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">

<persistence-unit name="blog" transaction-type="JTA">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

    <properties>
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/blog?createDatabaseIfNotExist=true"/>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
        <property name="hibernate.connection.username" value="abc"/>
        <property name="hibernate.connection.password" value="abc"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
        <property name="hibernate.hbm2ddl.auto" value="create"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.0"/>
    </properties>

</persistence-unit>

pom.xml

<dependencies>

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
        <version>1.0.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.2.Final</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency>

</dependencies>

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

用户:

@Entity
@Table(name = "users")
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

@Column(name = "username")
private String username;

@Column(name = "password")
private String password;

@OneToMany(mappedBy = "user")
private Set<Post> posts;
}

当我加载主页面时,没有创建数据库。

When I load my main page no database is created.

此外我想坚持用户。

@Stateless
public class UserRepositoryImpl implements UserRepository {

@PersistenceContext(unitName = "blog")
private EntityManager entityManager;

public void create(User user) {
    this.entityManager.persist(user);
}
}

没有创建数据库且实体管理器为空。我需要配置什么才能使其运行?
我正在使用IntelliJ进行测试。

No database is created and the entity manager is null. What do I need to configure to make it run? I am using IntelliJ for testing.

推荐答案

JTA数据源由jpa容器管理(在wildfly内部)。
您必须在standalone.xml中定义url,username和password。
搜索数据源子系统< subsystem xmlns =urn:jboss:domain:datasources:4.0> 并添加数据源定义,例如:

A JTA datasource is managed by the jpa container (inside wildfly). You must define the url, username, password in the standalone.xml. Search for the datasources subsystem <subsystem xmlns="urn:jboss:domain:datasources:4.0"> and add a datasource definition, for example:

<datasource jta="true" jndi-name="java:/jdbc/myDS" pool-name="MyDS" enabled="true" use-java-context="true" use-ccm="true">
    <connection-url>jdbc:mysql://localhost:3306/blog</connection-url>
    <driver>mysqldriver.jar</driver>
    <security>
        <user-name>username</user-name>
        <password>password</password>
    </security>
</datasource>

接下来,您必须为数据库驱动程序创建一个模块。有关详细信息,请查看文档: https://docs.jboss.org/author / display / WFLY8 / DataSource + configuration

Next you have to create a module for your database driver. For the details check the documentation: https://docs.jboss.org/author/display/WFLY8/DataSource+configuration

然后你的persistence.xml将如下所示:

Then your persistence.xml will look like this:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
         http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
    version="2.1">

    <persistence-unit name="blog">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>jdbc/myDS</jta-data-source>
        <properties>
            <property name="hibernate.archive.autodetection" value="class" />
             <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
         <property name="hibernate.hbm2ddl.auto" value="create"/>
        <property name="hibernate.show_sql" value="true"/>
         </properties>
     </persistence-unit>
 </persistence>

在服务器和组件开始时监视异常。

During server and component start watch for exceptions.

这篇关于WildFly + Hibernate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆