国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

保存mongodb數(shù)據(jù)時(shí)出現(xiàn)_class字段,應(yīng)該如何去掉

這篇具有很好參考價(jià)值的文章主要介紹了保存mongodb數(shù)據(jù)時(shí)出現(xiàn)_class字段,應(yīng)該如何去掉。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

配置如下:
application.yml文件內(nèi)容如下

spring:
  data:
    mongodb:
      host: 192.168.9.234 #指定MongoDB服務(wù)地址
      port: 27017 #指定端口,默認(rèn)就為27017
      database: blog #指定使用的數(shù)據(jù)庫(kù)(集合)
      authentication-database: admin # 登錄認(rèn)證的邏輯庫(kù)名
      username: admin #用戶名
      password: 123456 #密碼
  main:
    banner-mode: off
server:
  port: 8080

公共類如下
IBasicDao類:

package com.zingrow.blog.common;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.util.List;

public interface IBasicDao<T> {
    /**
     * 查詢數(shù)據(jù)
     *
     * @param query
     * @return
     */

    List<T> find(Query query);

    /**
     * 分頁(yè)查詢
     *
     * @param query
     * @param start
     * @param size
     * @return
     */
    List<T> findList(Query query, int start, int size);


    /**
     * 根據(jù)ID查詢
     *
     * @param id
     * @return
     */
    T findOne(String id);

    /**
     * 插入一條數(shù)據(jù)
     *
     * @param entity
     */
    void insert(T entity);

    /**
     * 更新數(shù)據(jù)
     *
     * @param query
     * @param update
     * @return
     */
    UpdateResult update(Query query, Update update);

    /**
     * 根據(jù)實(shí)體類刪除數(shù)據(jù)
     *
     * @param entity
     * @return
     */
    DeleteResult delete(T entity);


    /**
     * 根據(jù)query刪除數(shù)據(jù)
     *
     * @param query
     * @return
     */

    DeleteResult remove(Query query);

    long count();

    long count(Query query);

    void save(T entity);

    List<T> findAll();

    List<T> findByKeyAndValue(String key, String Value);

    List<T> findByKeyAndValue(String key, String Value, int start, int limit);

    void upsert(Query query, Update update);

    MongoTemplate getMongoTemplate();
}

其實(shí)現(xiàn)類BasicDao內(nèi)容如下

package com.zingrow.blog.common;

import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.lang.reflect.ParameterizedType;
import java.util.List;

public class BasicDao<T> implements IBasicDao<T> {
    private Class<T> clazz;

    public BasicDao() {
        ParameterizedType type = (ParameterizedType) getClass().getGenericSuperclass();
        clazz = (Class<T>) type.getActualTypeArguments()[0];
    }

    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public List<T> find(Query query) {
        return mongoTemplate.find(query, clazz);
    }

    @Override
    public List<T> findList(Query query, int start, int size) {
        query.with(Sort.by(new Sort.Order(Sort.Direction.ASC, "_id")))
                .skip(start)
                .limit(size);
        return mongoTemplate.find(query, clazz);
    }

    @Override
    public T findOne(String id) {
        Query query = new Query();
        query.addCriteria(new Criteria("_id").is(id));
        return mongoTemplate.findOne(query, clazz);
    }

    @Override
    public void insert(T entity) {
        mongoTemplate.insert(entity);
    }

    @Override
    public UpdateResult update(Query query, Update update) {
        return mongoTemplate.updateMulti(query, update, clazz);
    }

    @Override
    public DeleteResult delete(T entity) {
        return mongoTemplate.remove(entity);
    }

    @Override
    public DeleteResult remove(Query query) {
        return mongoTemplate.remove(query, clazz);
    }

    public DeleteResult remove(String id) {
        Query query = new Query();
        query.addCriteria(Criteria.where("id").is(id));
        return mongoTemplate.remove(query, clazz);
    }

    @Override
    public long count() {
        Query query = new Query();
        return mongoTemplate.count(query, clazz);
    }

    @Override
    public long count(Query query) {
        return mongoTemplate.count(query, clazz);
    }

    @Override
    public void save(T entity) {
        mongoTemplate.save(entity);
    }

    @Override
    public List<T> findAll() {
        Query query = new Query();
        return find(query);
    }

    @Override
    public List<T> findByKeyAndValue(String key, String Value) {
        Query query = new Query(Criteria.where(key).is(Value));

        return mongoTemplate.find(query, clazz);
    }

    @Override
    public List<T> findByKeyAndValue(String key, String Value, int start, int limit) {
        Query query = new Query(Criteria.where(key).is(Value));
        query.skip(start).limit(limit);
        return mongoTemplate.find(query, clazz);
    }

    @Override
    public void upsert(Query query, Update update) {
        mongoTemplate.upsert(query, update, clazz);
    }

    @Override
    public MongoTemplate getMongoTemplate() {
        return mongoTemplate;
    }
}

實(shí)體類(Article)如下

package com.zingrow.blog.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "article")
public class Article {

    @Id
    private String id;
    private String title;
    private String classify;
    private String content;
    private String time;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getClassify() {
        return classify;
    }

    public void setClassify(String classify) {
        this.classify = classify;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public Article(String id, String title, String classify, String content, String time) {
        this.id = id;
        this.title = title;
        this.classify = classify;
        this.content = content;
        this.time = time;
    }

    @Override
    public String toString() {
        return "Article{" +
                "id='" + id + '\'' +
                ", title='" + title + '\'' +
                ", classify='" + classify + '\'' +
                ", content='" + content + '\'' +
                ", time='" + time + '\'' +
                '}';
    }
}

服務(wù)實(shí)現(xiàn)類(ArticleServiceImpl)

package com.zingrow.blog.service;
import com.zingrow.blog.common.BasicDao;
import com.zingrow.blog.entity.Article;
import org.springframework.stereotype.Service;

@Service
public class ArticleServiceImpl extends BasicDao<Article> {
}

控制類(ArticleController)

package com.zingrow.blog.contronller;
import com.zingrow.blog.entity.Article;
import com.zingrow.blog.service.ArticleServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@CrossOrigin(value = "*", maxAge = 300)
public class ArticleController {
    @Autowired
    private ArticleServiceImpl articleService;
    @GetMapping("add")
    public String add(Article article) {
        articleService.insert(article);
        return article.toString();
    }
}

成功插入數(shù)據(jù)后
保存mongodb數(shù)據(jù)時(shí)出現(xiàn)_class字段,應(yīng)該如何去掉,mongodb,數(shù)據(jù)庫(kù)
發(fā)現(xiàn)多了個(gè)_class字段,解決辦法如下
新建配置類(MongoConfig)

package com.zingrow.blog.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.DbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;

@Configuration
public class MongoConfig {

    @Bean(name = "mongoTemplate")
    public MongoTemplate mongoTemplate(MongoDatabaseFactory mongoDatabaseFactory, MongoMappingContext mongoMappingContext) {
        DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDatabaseFactory);
        MappingMongoConverter mappingConverter = new MappingMongoConverter(dbRefResolver, mongoMappingContext);
        //去掉_class字段
        mappingConverter.setTypeMapper(new DefaultMongoTypeMapper(null));
        return new MongoTemplate(mongoDatabaseFactory,mappingConverter);
    }
}

結(jié)果如下

保存mongodb數(shù)據(jù)時(shí)出現(xiàn)_class字段,應(yīng)該如何去掉,mongodb,數(shù)據(jù)庫(kù)
失敗案例:
新建配置類(在實(shí)際項(xiàng)目引入時(shí)可能會(huì)報(bào)MongoDbFactory已被廢棄)文章來源地址http://www.zghlxwxcb.cn/news/detail-835805.html


@Configuration
public class MongoConfig {
 
    @Bean
    public MappingMongoConverter mappingMongoConverter(MongoDbFactory factory, MongoMappingContext context, BeanFactory beanFactory) {
        DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory);
        MappingMongoConverter mappingConverter = new MappingMongoConverter(dbRefResolver, context);
        try {
            mappingConverter.setCustomConversions(beanFactory.getBean(CustomConversions.class));
        } catch (NoSuchBeanDefinitionException ignore) {
        }
 
        // Don't save _class to mongo
        mappingConverter.setTypeMapper(new DefaultMongoTypeMapper(null));
        return mappingConverter;

到了這里,關(guān)于保存mongodb數(shù)據(jù)時(shí)出現(xiàn)_class字段,應(yīng)該如何去掉的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • git拉代碼時(shí)出現(xiàn)輸入“token”的頁(yè)面 與 用git如何保存不想提交的代碼(git小記)

    git拉代碼時(shí)出現(xiàn)輸入“token”的頁(yè)面 與 用git如何保存不想提交的代碼(git小記)

    在之前拉取代碼時(shí),只需要登錄我們被授予權(quán)限過的賬號(hào)和密碼即可,但由于更新了IDEA為最新版本(2023),默認(rèn)自帶Gitlab組件,導(dǎo)致需要登錄什么token,這個(gè)token可能需要ssh協(xié)議獲取倉(cāng)庫(kù)。太過麻煩! 去掉該組件 !再次拉代碼即可回復(fù)正常!(tips:新版本的idea自動(dòng)配置gi

    2024年03月19日
    瀏覽(25)
  • vscode保存格式化自動(dòng)去掉分號(hào)、逗號(hào)、雙引號(hào)

    vscode保存格式化自動(dòng)去掉分號(hào)、逗號(hào)、雙引號(hào)

    之前每次寫完代碼都是雙引號(hào)還有分號(hào),看著很難受,就像修改一下,讓它變成單引號(hào),并且不加上引號(hào):如下形式,看著簡(jiǎn)潔清晰明了 修改方式:更改 settings.json 文件 快捷鍵“Ctrl + Shift + P”打開命令面板 加上這幾個(gè)配置: 貼上我的完整配置: ?

    2024年02月09日
    瀏覽(26)
  • springboot配置swagger/knife4j時(shí)出現(xiàn)的Unresolvable class definition for class …異常

    springboot配置swagger/knife4j時(shí)出現(xiàn)的Unresolvable class definition for class …異常

    抽取出其中的關(guān)鍵原因描述: nested exception is java.lang.IllegalArgumentException: Unresolvable class definition for class [springfox.documentation.spring.web.OnServletBasedWebApplication] springfox.documentation.common.ClassPresentInClassPathCondition 進(jìn)行原因排查后,發(fā)現(xiàn)是依賴之間版本問題的沖突導(dǎo)致,下面提供一個(gè)能

    2024年02月12日
    瀏覽(22)
  • 解決Vs Code工具開發(fā)時(shí) 保存React文件時(shí)出現(xiàn)亂碼情況

    解決Vs Code工具開發(fā)時(shí) 保存React文件時(shí)出現(xiàn)亂碼情況

    ?Vs Code工具開發(fā)時(shí) 保存React文件時(shí)出現(xiàn)亂碼情況 ? ?插件庫(kù)搜索:JS-CSS-HTML?Formatter 把這個(gè)插件禁用或者卸載就解決保存時(shí)出現(xiàn)亂碼的問題了; ? 如果沒有解決,再看下面方案! 出現(xiàn)亂碼問題通常是因?yàn)槲募木幋a格式不正確。您可以嘗試以下解決方法: 確認(rèn)文件編碼格式:在

    2024年02月14日
    瀏覽(19)
  • 新手應(yīng)該如何快速上手MySQL數(shù)據(jù)庫(kù)?

    新手應(yīng)該如何快速上手MySQL數(shù)據(jù)庫(kù)?

    數(shù)據(jù)庫(kù)是計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)、管理和檢索數(shù)據(jù)的系統(tǒng)。它允許用戶訪問并管理數(shù)據(jù),并具有可靠、可擴(kuò)展和高效的特性。 MySQL是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在互聯(lián)網(wǎng)領(lǐng)域被廣泛使用,如今也成為各種行業(yè)使用的標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)之一。 在這部分學(xué)習(xí)過程中,主要以 M

    2024年02月06日
    瀏覽(29)
  • 【MongoDB】索引 - 單字段索引

    【MongoDB】索引 - 單字段索引

    MongoDB支持在集合文檔中的任意字段上創(chuàng)建索引,默認(rèn)情況下所有的集合都有一個(gè)_id字段的索引,用戶和應(yīng)用可以新增索引用于查詢和操作。 這里準(zhǔn)備一些學(xué)生數(shù)據(jù) 上面我們查詢了students集合中的索引列表 查詢結(jié)果如下: 默認(rèn)情況下,students集合中存在一個(gè)_id字段的索引;

    2024年02月05日
    瀏覽(23)
  • Mongodb 控制查詢返回字段

    使用關(guān)系型數(shù)據(jù)庫(kù)時(shí),用戶在select命令后添加字段名稱控制返回字段。mongodb中也支持對(duì)查詢返回字段的控制。默認(rèn)返回文檔的所有字段。為了限制返回?cái)?shù)據(jù)量,提高網(wǎng)絡(luò)傳輸速率。用戶可以通過投射(projection)來指定返回字段或在返回結(jié)果中排除一些字段。 與本系列其他文

    2024年01月23日
    瀏覽(18)
  • 《數(shù)據(jù)資產(chǎn)》專題:什么是《數(shù)據(jù)資產(chǎn)》?應(yīng)該如何落地《數(shù)據(jù)資產(chǎn)管理與實(shí)施》

    《數(shù)據(jù)資產(chǎn)》專題:什么是《數(shù)據(jù)資產(chǎn)》?應(yīng)該如何落地《數(shù)據(jù)資產(chǎn)管理與實(shí)施》

    2021 年 12 月,中國(guó)南方電網(wǎng)發(fā)布了《南方電網(wǎng)數(shù)據(jù)資產(chǎn)管理體系白皮書》,白皮書指出,數(shù)據(jù)資產(chǎn)管理,是數(shù)據(jù)資產(chǎn)價(jià)值釋放的必經(jīng)之路。 報(bào)告中稱,不少企業(yè)對(duì)于數(shù)據(jù)如何促進(jìn)內(nèi)部的提質(zhì)增效及外部?jī)r(jià)值的釋放并無統(tǒng)一認(rèn)知,對(duì)于數(shù)據(jù)資產(chǎn)的運(yùn)營(yíng)缺乏體制化規(guī)劃。 隨著企

    2024年04月08日
    瀏覽(25)
  • VUE 字段為空時(shí),一個(gè)class搞定,適用多種情形

    我抄的,我抄的,我抄的,我抄的,我抄的 但真香 在寫表格時(shí),當(dāng)某字段為空,你是否是這樣寫的: 如果有多個(gè)字段需要判斷,你是否要寫多個(gè)空字段的判斷??? 回答我,是或者不是?。?! 在下不才,寫了個(gè)適用于大多數(shù)el-table、el-description、el-collapse等、但不限于這些內(nèi)容的

    2024年02月21日
    瀏覽(19)
  • 【無標(biāo)題】【第6次修改了可刪除可持久保存的前端html備忘錄:去掉第2頁(yè)面可誤刪除

    【無標(biāo)題】【第6次修改了可刪除可持久保存的前端html備忘錄:去掉第2頁(yè)面可誤刪除

    第6次修改了可刪除可持久保存的前端html備忘錄:去掉第2頁(yè)面

    2024年01月17日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包