簡體   English   中英

“基本”屬性類型不應是持久性實體

[英]'Basic' attribute type should not be Persistence Entity

我在另一個實體類中引用一個實體並收到此錯誤。 下面是示例代碼。 我在persistence.xml 中也有這些類。

是什么導致了這個問題? 我正在使用 Spring 數據 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;
    }
}

基本上我所做的是替換 Long 的 long。 並添加了 @OneToOne 我刪除了 @Basic 因為它是可選的。 我相信它應該可以正常工作

您錯過了實體之間的關系類型。 例如,您可以將單向 @OneToOne 定義為

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM