programing

자바 16 레코드를 JPA 엔티티와 함께 사용할 수 있습니까?

skycolor 2023. 7. 16. 13:12
반응형

자바 16 레코드를 JPA 엔티티와 함께 사용할 수 있습니까?

저는 아래와 같은 것을 하려고 합니다.

@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;

}

그러나 "사용자가 선언한 정적이 아닌 필드 ID는 레코드에서 허용되지 않습니다."라는 오류가 나타나고 이름 필드에서도 마찬가지입니다.

JPA 주석으로 새로운 자바 기능 "레코드"를 사용하는 방법이 있습니까?

주의: 자카르타 EE의 향후 버전에서는 아래에 설명된 상황이 변경될 수 있습니다.


빌리 코란도의 "JPA에서 투영으로 레코드 사용" 기사를 참조하십시오.다음은 간단한 요약입니다.

레코드는 엔티티일 수 없습니다.

동면와 같은 JPA(Jakarta Persistence; 이전 Java Persistence API) 구현은 JEP 395에 의해 금지되거나 권장되지 않는 기능(노아그 생성자, 최종 필드, 세터 등)에 따라 달라집니다.

◦ 그래서 아니요, 레코드는 JPA로 사용할 수 없습니다.Entity.

레코드의 기타 용도

레코드를 다음과 함께 사용할 수 있습니다.

  • CriteriaBuilder
  • TypedQuery
  • NativeQuery
  • 매핑 정의

스프링 데이터도 일부 지원됩니다.

자세한 내용은 위에 링크된 기사를 참조하고 다른 두 기사에 대한 링크를 참조하십시오.

언급URL : https://stackoverflow.com/questions/70601508/can-i-use-java-16-record-with-jpa-entity

반응형