当前位置: 首页 > 知识库问答 >
问题:

SpringData MongoDB在审核期间无法确定IsNewStrategy

商和雅
2023-03-14

我正在尝试使用注释启用审核。我的域类具有在构造对象时填充的@Id字段。我添加了一个java。util。lastModified的日期字段,并用@LastModifiedDate对其进行注释。

@Document
public class Book {
    @Id
    private String name;
    private String isbn;
    @LastModifiedDate
    private Date lastModified;

    public Book(String name) {
        this.name = name;
    }
}

我已经使用

当我尝试保存对象的实例时,出现以下错误:

Book book1 = new Book("ABCD");
mongoOps.save(book1);

Java语言lang.IllegalArgumentException:不支持的实体com。潘卡吉。书无法确定IsNewStrategy。

我不想使用Auditable接口,也不想从AbstractAuditable扩展我的域类。我只想使用注释。因为我对@CreatedBy和@LastModifiedBy不感兴趣,所以我也没有实现AuditAware接口。

我只想让@LastModifiedDate为我的域类工作。我错过了什么?

我使用的是SpringData MongoDB的1.7.0版。


共有3个答案

辛龙野
2023-03-14

我在使用仅注释配置时也遇到了同样的问题。

当您将@EnableMongoAudting放在配置类上时,Spring将创建一个MappingContext bean。

然后您必须确保在MongoTemboard中使用相同的mappingContext。

@Configuration
@EnableMongoAuditing
@EnableMongoRepositories(value = "my.repositories.package", mongoTemplateRef = "myMongoTemplate")
class MongoConfig {

    @Autowired
    //Autowiring the MongoMappingContext will supply the same MongoMappingContext as the one used in auditing
    MongoMappingContext mongoMappingContext;

    @Bean
    MongoTemplate myMongoTemplate() {

        String databaseName = "mydbname";
        MongoDbFactory factory = new SimpleMongoDbFactory(mongoClient, databaseName);
        MongoConverter converter = new MappingMongoConverter(factory, mongoMappingContext);
        MongoTemplate mongoTemplate =  new MongoTemplate(factory, converter);
        return mongoTemplate;
    }
}
闻人宏盛
2023-03-14

我也有同样的问题,后来我确定我缺少带有注释的ID字段;

@Id
private String Id

在我的课堂上,我试图坚持

@Document(collection="collectionName")
白子明
2023-03-14

您没有提到如何配置MongoDB连接,但如果您使用AbstractMongoConfiguration,它将在启动时使用实际配置类的包来查找@文档注释类。

如果您的实体位于不同的包中,则必须通过覆盖AbstractMongoConfiguration手动移交该包。getMappingBasePackage()。将其放在Mongo配置类中应该可以做到这一点(同样,这是在考虑为Mongo配置扩展AbstractMongoConfiguration):

@Override
protected String getMappingBasePackage() {
    return "package.with.my.domain.classes";
}
 类似资料:
  • 接口说明 审核用户的注册申请 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/user/1.0.0/check 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 guid string form 是 用户ID status int form 是 用户状态[0:未审核;1:已审核] 响应字段说明 无 响应

  • 小程序审核规范 为保护用户权益及京东小程序平台安全,并方便小程序开发者对平台审核规则进行了解,京东制订京东小程序审核规范(以下简称“本规范”)。除本规范外,服务商还应遵守《京东小程序平台服务条款》(以下简称“平台服务条款”)、小程序运营规范及京东修订或公布的相关协议、规则与规范。 一、小程序基本信息审核 1.京东小程序的基本信息,其中包括小程序名称、介绍、图标等均不可: (1) 侵犯他人的著作权、

  • 审核发布流程 第一步:上传代码包 开发完成后,开发者在开发管理中通过手动点击“上传代码包”的方式提交开发版本。京东小程序允许多次上传代码包,重新上传后将覆盖之前的版本。 在提交审核之前可以将您的京东小程序设置为体验版本,让部分用户先体验小程序。 第二步:提交审核 代码包上传成功后,并且小程序功能研发和测试完毕,通过点击“提交审核”,将当前的开发版本提交审核。可以在审核版本中看到,当状态为“审核中”

  • 工单审核 实时刷新开关默认打开,如需删除记录请先关闭该开关。 如定时工单的时间小于当前时间,执行该工单将会立即执行(请确保Yearning所在环境时区与使用者时区一致,否则会导致定时执行异常!) 目前仅支持延时工单中止,其他工单执行后无法中止! 执行成功的工单可点击执行信息按钮后查看回滚语句 查询审核 点击全部中止按钮将会中止所有用户的查询权限 如没有在设置页面开启查询审核开关,则默认用户查询申请

  • 目的 对于小米生态链产品,避免内测阶段和正式发售之后出现严重的用户隐私和数据安全问题。 重点 数据的采集、存储、传输和访问控制。如果使用了非生态链企业自身的产品和云服务,请注明(例如小米文件存储服务,阿里云数据库服务,金山云虚机,小米账号,小米云服务MiCloud, 小米智能家庭MIOT/MIIO,等)。 流程 新产品内测之前提交文档审核,审核通过之后才可以开始内测(如果有严重问题必须修正)。 新