gpt4 book ai didi

java - Spring Data MongoDB - 使用自定义 Id 字段时,注释 @CreatedDate 不起作用

转载 作者:行者123 更新时间:2023-12-03 21:13:28 24 4
gpt4 key购买 nike

我有一个简单的持久化类:

public class Profile implements Persistable<String>{

@Id
private String username;

@CreatedDate
public Date createdDate;

public Profile(String username) {
this.username = username;
}

@Override
public String getId() {
return username;
}

@Override
public boolean isNew() {
return username == null;
}
}

和一个简单的存储库:
public interface ProfileRepository extends MongoRepository<Profile, String> {

}

我的 Spring Boot Application 类也用 @EnableMongoAuditing 进行了注释。 但我仍然无法获得注释 @CreatedDate 工作。

ProfileRepository.save(new Profile("user1")) 写入没有字段 createdDate 的实体。我做错了什么?

编辑:这是我的应用程序类(没有@EnableMongoRepositories,但它可以工作,因为存储库在我猜的子包中)
@SpringBootApplication
@EnableMongoAuditing
public class Application {

public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}

编辑:同时添加注释 EnableMongoRepositories 没有改变任何东西。

最佳答案

只需添加 @Version场给你@Document下课离开 @EnableMongoAuditing IE。

@Document
public class Profile implements Persistable<String>{

@Version
private Long version;

@Id
private String username;

@CreatedDate
public Date createdDate;

public Profile(String username) {
this.username = username;
}

@Override
public String getId() {
return username;
}

@Override
public boolean isNew() {
return username == null;
}
}
这是一个相关的问题: https://jira.spring.io/browse/DATAMONGO-946

关于java - Spring Data MongoDB - 使用自定义 Id 字段时,注释 @CreatedDate 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54265385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com