Search code examples
groovymicronaut

autogenerate uuid in micronaut entity


I have this entity (I am using micronaut with mongoDB):

class Fruit {

    @Id
    @GeneratedValue
    String id

    @GeneratedValue(GeneratedValue.Type.UUID)
    UUID uuid

    @NonNull
    @NotBlank
    String name

    @Nullable
    String description
}

when I do inserts using this entity, the @ID field is generated and inserted properly but the UUID is ignored. How can I autogenerate UUIDS in Micronaut entities?


Solution

  • @GeneratedValue is for IDs only as defined in JPA spec:

    Provides for the specification of generation strategies for the values of primary keys.

    The GeneratedValue annotation may be applied to a primary key property or field of an entity or mapped superclass in conjunction with the Id annotation. The use of the GeneratedValue annotation is only required to be supported for simple primary keys. Use of the GeneratedValue annotation is not supported for derived primary keys.

    You can use @AutoPopulated for this case.