实践背景:在wildfly中使用hibernate-ogm框架操作mongodb数据库
条件:
- hibernate-ogm-wildfly10-module.zip:https://pan.baidu.com/s/1kVE1Rvh 密码:d2hl
- 安装mongodb数据库,网上自搜索教程。
(转载请注明来源:cnblogs coder-fang)
步骤:
- 将hibernate-ogm-wildfly10-module.zip解压到 WILDFLY10_HOME/modules中,产生WILDFLY10_HOME/modules/org文件夹。
- 添加一个ExampleDS数据源,可随意创建,修改standalone.xml,在datasources节点下创建,代码如下:
<datasource jta="true" jndi-name="java:/ExampleDS" pool-name="ExampleDS" enabled="true" use-ccm="true"> <connection-url>null</connection-url> <driver-class>org.h2.Driver</driver-class> <driver>h2</driver> <security> <user-name>sa</user-name> <password>sa</password> </security> </datasource>
- 修改默认绑定的数据源为ExampleDS,即在standalone.xml中的<subsystem xmlns="urn:jboss:domain:ee:4.0">节点下修改代码:
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
注:此时即可启动服务,服务已支持hibernate-ogm模块.
- 创建实体类,代码如下:
View Code
package com.sj.mrics.db.model; import java.io.Serializable; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import org.hibernate.annotations.Type; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.sj.mrics.util.JsonDateSerializer; @Entity @Table(name = "weblog") public class WebLog implements Serializable{ /** * weblog即为数据库中的collection名称 */ private static final long serialVersionUID = -914369413813954644L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Type(type = "objectid") private String id; private String msg; private String level; @JsonSerialize(using=JsonDateSerializer.class) private Date uptime; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getLevel() { return level; } public void setLevel(String level) { this.level = level; } @Temporal(TemporalType.TIMESTAMP) public Date getUptime() { return uptime; } public void setUptime(Date uptime) { this.uptime = uptime; } }