1 指定主键类型: @MongoId(targetType = FieldType.STRING)
package com.gzz;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.FieldType;
import org.springframework.data.mongodb.core.mapping.MongoId;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Document("user")
public class User {
@MongoId(targetType = FieldType.STRING)
private String id;
private String name;
private Integer age;
}
2 提前给定主键: org.bson.types.ObjectId && ObjectId.get().toString()
package com.gzz;
import java.util.List;
import javax.annotation.PostConstruct;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.mongodb.core.MongoTemplate;
import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Query.query;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootApplication
public class Application3 {
public static void main(String[] args) {
SpringApplication.run(Application3.class, args);
}
@Autowired
private MongoTemplate mongoTemplate;
@PostConstruct
public void init() {
User user1 = User.builder().id(ObjectId.get().toString()).name("张三").age(12).build();
User user2 = User.builder().id(ObjectId.get().toString()).name("李四").age(14).build();
User user3 = User.builder().id(ObjectId.get().toString()).name("王五").age(15).build();
mongoTemplate.insert(List.of(user1, user2, user3), User.class);
User user = mongoTemplate.findOne(query(where("_id").is("61e139e4531fde11308e9fca")), User.class);
log.info("user={}",user);
}
}
网友评论