spring-data - Spring Data MongoDB 在审计期间无法确定其新策略

标签 spring-data spring-data-mongodb

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

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

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

我已使用 <mongo:auditing/>. 在 Spring 配置 XML 中启用审核

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

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

java.lang.IllegalArgumentException:不支持的实体 com.pankaj.Book!无法确定 IsNewStrategy。

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

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

我正在使用 SpringData MongoDB 1.7.0 版。

最佳答案

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

如果您的实体位于不同的包中,则必须通过覆盖 AbstractMongoConfiguration.getMappingBasePackage() 手动处理该包。把它放在你的 Mongo Configuration 类中应该可以解决问题(同样,这是考虑到你正在为你的 Mongo 配置扩展 AbstractMongoConfiguration ):

@Override
protected String getMappingBasePackage() {
    return "package.with.my.domain.classes";
}

关于spring-data - Spring Data MongoDB 在审计期间无法确定其新策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422672/

相关文章:

spring-data-jpa - Spring data mongoDb 不是像 Spring data Jpa 这样的 null 注释

mongodb - 在 MongoDB 中存储扫描的(pdf、tiff、jpeg)文件。

mongodb - 如何在 Mongodb 中设置 java 驱动程序的读取首选项

java - spring data jpa复合键重复键记录插入导致更新

java - 在带有 Spring Data 的 Mongo 实体中使用 jodatime

java - Spring io @Autowired : The blank final field may not have been initialized

eclipse - 如何解决 Spring Data Maven 构建的 "Plugin execution not covered by lifecycle configuration"

java - 在 Spring Data MongoDB Aggregation 中对数组进行分组后,计数操作返回 1 而不是 0

java - Spring Data LDAP 使用 Pageable 可能吗?

java - Spring Data JPA 检查 SET 是否包含对象