У меня возникла следующая проблема: до сих пор я создавал сущности, которые выглядели примерно так:
public class ExampleEntity {
@Id
@GeneratedValue(generator = "UUID")
private UUID id;
// Other properties...
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ExampleEntity that = (ExampleEntity) o;
return id.equals(that.id);
}
}
Это работало нормально, пока мне недавно не пришлось сравнивать объекты, прежде чем они были сохранены в базе данных. , Я понял, что аннотация @GeneratedValue(generator = "UUID")
генерирует UUID не при создании объекта (дух ...) и все идентификаторы равны null
, если объект не представлен в базе данных.
Я сейчас ищу лучший способ инициализировать мои сущности с UUID как Id. Это достаточно или есть лучший способ сделать это?
public class ExampleEntity {
@Id
private UUID id = UUID.randomUUID();
// Same as above...
}