Estoy tratando de hacer algo similar como a continuación.
@Entity @Table(name="Sample") public record Sample(Integer id, String name) { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="user_id") private Integer id; @Column(name="username") private String name; }Sin embargo, me da el error "La identificación de campos no estáticos declarados por el usuario no está permitida en un registro" y lo mismo para el campo de nombre también.
¿Hay alguna manera de usar el nuevo "registro" de características de Java con la anotación JPA?
Consulte el artículo Uso de registros como proyecciones en JPA de Billy Korando. El siguiente es un breve resumen.
Las implementaciones de Persistencia de Jakarta ( JPA ; anteriormente API de Persistencia de Java ) como Hibernate dependen de funciones prohibidas o no recomendadas por JEP 395: Especificaciones de registros : constructores sin argumentos, campos no finales, configuradores, etc.
➥ Entonces, no, los registros no se pueden usar como Entity JPA.
Puede utilizar registros con:
CriteriaBuilderTypedQueryNativeQueryLos datos de Spring también tienen algo de soporte.
Consulte ese artículo vinculado anteriormente para obtener detalles y para obtener enlaces a otros dos artículos.