Использование Java Records в качестве jpa embeddablesJAVA

Программисты JAVA общаются здесь
Anonymous
Использование Java Records в качестве jpa embeddables

Сообщение Anonymous »

Я хочу использовать java record s в качестве встроенных объектов с JPA. Например, я хочу обернуть идентификатор в запись, чтобы сделать его Typesafe: < /p>

Код: Выделить всё

@Entity
public class DemoEntity {

@EmbeddedId
private Id id = new Id(UUID.randomUUID());

@Embeddable
public static record Id(@Basic UUID value) implements Serializable {}
}
< /code>
Но если я попытаюсь сохранить его с Hibernate 5.4.32 Я получаю следующую ошибку: < /p>
org.hibernate.InstantiationException: No default constructor for entity:  : com.example.demo.DemoEntity$Id
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:85) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
at org.hibernate.tuple.component.AbstractComponentTuplizer.instantiate(AbstractComponentTuplizer.java:84) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
...
Так что выглядит так, будто Hibernate рассматривает идентификатор записи как объект, хотя это @embeddable .
То же самое происходит с полями не ID и @embedded :

Код: Выделить всё

@Embedded
private Thing thing = new Thing("example");

@Embeddable
public static record Thing(@Basic String value) implements Serializable {}
Есть ли способ использовать @embeddable record s с jpa/hibernate?

Подробнее здесь: https://stackoverflow.com/questions/684 ... mbeddables

Вернуться в «JAVA»