Spring集成Mongodb常用注解

@Document
把一个java类声明为mongodb的文档,可以通过collection参数指定这个类对应的文档,标注在实体类上,类似于hibernate的entity注解。

@Document(collection = "log_sys_user")
public class LogSysUser {}

@Id
文档的唯一标识,在mongodb中为ObjectId,它是唯一的,不可重复,自带索引,通过时间戳+机器标识+进程ID+自增计数器(确保同一秒内产生的Id不会冲突)构成。

@Transient
映射忽略的字段,该字段不会保存到mongodb,只作为普通的javaBean属性。

@Field
映射 mongodb中的字段名,可以不加,不加的话默认以参数名为列名。

private String eventId;

@Field("event_id")
public String getEventId() {
    return eventId;
}

“event_id”为mongodb文档中的字段,“eventId”为java类中的属性。

@Indexed
声明该字段需要索引,建索引可以大大的提高查询效率。

@CompoundIndex
复合索引的声明,建复合索引可以有效地提高多字段的查询效率。

@GeoSpatialIndexed
声明该字段为地理信息的索引。

@DBRef
关联另一个document对象。类似于mysql的表关联,但并不一样,mongo不会做级联的操作。

示例:

import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "log_sys_user")
public class SysUserLog {
    /**
    * @Fields id : 主键
    */
    private String id;
    /**
    * @Fields userId : 用户ID
    */
    private String userId;
    /**   
     * @Fields userName : 用户姓名
     */
    private String userName;
    /**   
     * @Fields userIp : 用户IP 
     */
    private String userIp;
    /**   
     * @Fields operationUrl : URL
     */
    private String operationUrl;
    /**
    * @Fields operationType : 操作类型
    */
    private String operationType;
    /**
    * @Fields operationContent : 操作内容
    */
    private String operationContent;
    /**
    * @Fields createTime : 创建时间
    */
    private Date createTime;

    /**  
     * @Title:  getId <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    @Id
    public String getId() {
        return id;
    }
    /**  
     * @Title:  setId <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public void setId(String id) {
        this.id = id;
    }
    /**  
     * @Title:  getUserId <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public String getUserId() {
        return userId;
    }
    /**  
     * @Title:  setUserId <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }
    /**  
     * @Title:  getUserName <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    @Transient
    public String getUserName() {
        return userName;
    }
    /**  
     * @Title:  setUserName <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }
    /**  
     * @Title:  getUserIp <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public String getUserIp() {
        return userIp;
    }
    /**  
     * @Title:  setUserIp <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public void setUserIp(String userIp) {
        this.userIp = userIp;
    }
    /**  
     * @Title:  getOperationUrl <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public String getOperationUrl() {
        return operationUrl;
    }
    /**  
     * @Title:  setOperationUrl <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public void setOperationUrl(String operationUrl) {
        this.operationUrl = operationUrl;
    }
    /**  
     * @Title:  getOperationType <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public String getOperationType() {
        return operationType;
    }
    /**  
     * @Title:  setOperationType <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }
    /**  
     * @Title:  getOperationContent <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public String getOperationContent() {
        return operationContent;
    }
    /**  
     * @Title:  setOperationContent <BR>  
     * @Description: please write your description <BR>  
     * @return: String <BR>  
     */
    public void setOperationContent(String operationContent) {
        this.operationContent = operationContent;
    }
    /**  
     * @Title:  getCreateTime <BR>  
     * @Description: please write your description <BR>  
     * @return: Date <BR>  
     */
    public Date getCreateTime() {
        return createTime;
    }
    /**  
     * @Title:  setCreateTime <BR>  
     * @Description: please write your description <BR>  
     * @return: Date <BR>  
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

}

猜你喜欢

转载自blog.csdn.net/shiyong1949/article/details/79286658
今日推荐