我想用 UUID
而不是平原 String
带注解的字段的值 @Id
,例如:
@Data // Lombok
public class Role {
@Id
private UUID id;
@Size(max = 18)
private String name;
}
但是,插入这样的对象会导致 Cannot autogenerate id of type java.util.UUID for entity of type Role
例外。
作为参考,我尝试了以下自定义配置,但没有成功:
@Configuration
public class DatabaseConfiguration extends AbstractReactiveMongoConfiguration {
@Override
protected String getDatabaseName() {
return "test";
}
@Override
public void configureClientSettings(MongoClientSettings.Builder builder) {
builder.uuidRepresentation(UuidRepresentation.STANDARD); // <---
}
}
有没有什么方法可以让它在不创建自定义的情况下工作 AbstractMongoEventListener
每个模型(为基类创建一个也不起作用)?
1条答案
按热度按时间voj3qocg1#
目前,在SpringDataMongoDB2.0、1.10.1和1.9.8之前,不能直接生成objectid、string或biginteger以外的数据类型的ID。
有关详细信息,请参阅:https://craftingjava.com/blog/custom-document-id-spring-data-mongodb/
作为解决方法的额外考虑
CustomMongoRepositoryImpl
,您可以创建一个自定义方面注解作为所有存储库的通用装载点,并且在该方面中,您可以拥有客户机id类型和生成器之间的Map。