Java Spring MongoDB UUID支持
我想对带有@Id注释的字段使用UUID而不是普通字符串值,例如:Java Spring MongoDB UUID支持,java,mongodb,spring-boot,uuid,spring-mongodb,Java,Mongodb,Spring Boot,Uuid,Spring Mongodb,我想对带有@Id注释的字段使用UUID而不是普通字符串值,例如: @Data // Lombok public class Role { @Id private UUID id; @Size(max = 18) private String name; } 但是,插入此类对象会导致无法为类型为Role exception的实体自动生成类型为java.util.UUID的id 作为参考,我尝试了以下自定义配置,但没有成功: @Configuration pu
@Data // Lombok
public class Role {
@Id
private UUID id;
@Size(max = 18)
private String name;
}
但是,插入此类对象会导致无法为类型为Role exception的实体自动生成类型为java.util.UUID的id
作为参考,我尝试了以下自定义配置,但没有成功:
@Configuration
public class DatabaseConfiguration extends AbstractReactiveMongoConfiguration {
@Override
protected String getDatabaseName() {
return "test";
}
@Override
public void configureClientSettings(MongoClientSettings.Builder builder) {
builder.uuidRepresentation(UuidRepresentation.STANDARD); // <---
}
}
是否有任何方法可以让它在不为每个模型创建自定义抽象MongoEventListener的情况下工作?为基类创建一个也不起作用?目前,在Spring data MongoDB 2.0、1.10.1和1.9.8之前,无法直接生成ObjectId、String或BigInteger以外的数据类型ID 有关更多详细信息,请参阅:
作为CustomMongoPositoryImpl解决方案的额外考虑,您可以创建自定义方面注释作为所有存储库的通用装载点,并且在该方面中,您可以在客户端id类型和生成器之间进行映射。该链接中建议的解决方案使用AbstractMongoEventListener,这是违反我所寻找的,正如我在文章中所说的。我打算用CuutManggRePosiTryRyPyt来解决这个问题。这个解决方案是针对旧版本的,甚至比创建多个ActudiMangGeEvistListor更糟糕。