programing

'Basic' 특성 유형은 지속성 엔티티가 아니어야 합니다.

newstyles 2023. 6. 28. 21:24

'Basic' 특성 유형은 지속성 엔티티가 아니어야 합니다.

다른 엔터티 클래스의 엔터티를 참조하는 중에 이 오류가 발생했습니다.아래는 샘플 코드입니다.persistence.xml에도 이러한 클래스가 있습니다.

이 문제의 원인은 무엇입니까?Spring data JPA와 Hibernate를 사용하고 있습니다.

import javax.persistence.*;
@Entity
@Table(name = "users", schema = "university")
public class UsersEntity {
    private long id;

    @JoinColumn(name = "address_id", nullable = false)
    private Address address;

    @Id
    @Column(name = "id")
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}
import javax.persistence.*;
@Entity
@Table(name = "address", schema = "university")
public class AddressEntity {
    private long id;
    private String street;

    @Id
    @Column(name = "id")
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    @Basic
    @Column(name = "street")
    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }
}

다음을 시도해 보십시오.

@Entity
@Table(name = "users", schema = "university")
public class UsersEntity {
    private Long id;

    private AddressEntity address;

    @Id
    @Column(name = "id")
    public Long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

   @OneToOne 
   @JoinColumn(name = "address_id", nullable = false)
   public AddressEntity getAddress() {
        return address;
    }

    public void setAddress(AddressEntity address) {
        this.address = address;
    }
}


@Entity
@Table(name = "address", schema = "university")
public class AddressEntity {
    private Long id;
    private String street;

    @Id
    @Column(name = "id")
    public Long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }


    @Column(name = "street")
    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }
}

기본적으로 제가 한 일은 롱을 교체하는 것이었고, @OneToOne을 추가했습니다. @Basic은 선택 사항이기 때문에 제거했습니다.나는 그것이 단지 효과가 있을 것이라고 믿습니다.

도면요소 간의 관계 유형이 누락되었습니다.예: 단방향 @OneToOne을 다음과 같이 정의할 수 있습니다.

//...
public class UsersEntity {
//..
  @OneToOne(mappedBy = "ugdArea", fetch = FetchType.LAZY)
  @JoinColumn(name = "address_id", nullable = false)
  private Address address;
//...
}

언급URL : https://stackoverflow.com/questions/59162862/basic-attribute-type-should-not-be-persistence-entity