MogoDB 集成

1pom:

  StringBoot 的項目引入:

 <!--引入 springdata mongodb 的依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2.config

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.MongoTransactionManager;


/**
 * mongodb的配置類
 * 解決新版本不支持獲取GGridFSDBFile
 *
 * @author 衛玉珍
 */
@Configuration
public class MongoConfig {
    @Value("${spring.data.mongodb.database}")
    String db;

    @Bean
    public GridFSBucket getGridFSBucket(MongoClient mongoClient) {
        MongoDatabase database = mongoClient.getDatabase(db);
        GridFSBucket bucket = GridFSBuckets.create(database);
        return bucket;
    }

    //配置 mongodb 事務管理器,能夠讓 mongodb 支持事務操作
    @Bean
    MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) {
        return new MongoTransactionManager(dbFactory);
    }
}

3. JPA :

 

package com.test.pay.mapper.mogo;

import com.test.pay.domain.mogo.MgOrder;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

/**
 * 有關訂單信息
 */
@Repository
public interface MgOrderMongoRepository extends MongoRepository<MgOrder, String> {
}

4.Service:

package com.test.pay.service.mongo;

import com.test.pay.domain.mogo.MgOrder;
import com.test.pay.mapper.mogo.MgOrderMongoRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;


@Service
@RequiredArgsConstructor
 public class MgOrderService {
    private final MgOrderMongoRepository mgOrderMongoRepository;

    public void save(MgOrder mgOrder) {
         mgOrderMongoRepository.save(mgOrder);
    }
}

5.實體類:

 

package com.test.pay.domain.mogo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoId;

import java.io.Serializable;

/**
 * Mogo訂單表
 *
 */
@Data
@Document("mg_order")
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Accessors(chain = true)
public class MgOrder implements Serializable {
    private static final long serialVersionUID = -3258839839160856613L;
    @MongoId
    private String id;
    @Indexed(unique = true)
    private String orderNumber;
    private String orderValue;
    private String className;

}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章