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;
}