Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine JPA,类的元数据错误:多个主键字段_Google App Engine_Jpa_Google Cloud Datastore_Metadata - Fatal编程技术网

Google app engine JPA,类的元数据错误:多个主键字段

Google app engine JPA,类的元数据错误:多个主键字段,google-app-engine,jpa,google-cloud-datastore,metadata,Google App Engine,Jpa,Google Cloud Datastore,Metadata,我有一个家长和一个孩子班。运行应用程序时,我遇到以下错误: Error in meta-data for com.twitterjaya.model.HistoryDeviceJPA: More than one primary key field. 我不知道为什么它说我定义了不止一个主键。如有任何建议,将不胜感激 @Entity(name = "HistoryJPA") @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) @Dis

我有一个家长和一个孩子班。运行应用程序时,我遇到以下错误:

Error in meta-data for com.twitterjaya.model.HistoryDeviceJPA: More than one primary key field.
我不知道为什么它说我定义了不止一个主键。如有任何建议,将不胜感激

@Entity(name = "HistoryJPA")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@DiscriminatorValue("HistoryJPA")
public class HistoryJPA {

    @Id
    String pageAddress;
    String domain;
    String pageTitle;
    long pageVisits;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        HistoryJPA that = (HistoryJPA) o;

        if (!pageAddress.equals(that.pageAddress)) return false;

        return true;
    }

    @Override
    public int hashCode() {
        return pageAddress.hashCode();
    }

    @Override
    public String toString() {
        return "HistoryJPA{" +
                "pageAddress='" + pageAddress + '\'' +
                ", domain='" + domain + '\'' +
                ", pageTitle='" + pageTitle + '\'' +
                ", pageVisits=" + pageVisits +
                '}';
    }

    public String getPageAddress() {
        return pageAddress;
    }

    public void setPageAddress(String pageAddress) {
        this.pageAddress = pageAddress;
    }

    public String getDomain() {
        return domain;
    }

    public void setDomain(String domain) {
        this.domain = domain;
    }

    public String getPageTitle() {
        return pageTitle;
    }

    public void setPageTitle(String pageTitle) {
        this.pageTitle = pageTitle;
    }

    public long getPageVisits() {
        return pageVisits;
    }

    public void setPageVisits(long pageVisits) {
        this.pageVisits = pageVisits;
    }
}
儿童班:

@Entity(name = "HistoryDeviceJPA")
@DiscriminatorValue("HistoryDeviceJPA")
public class HistoryDeviceJPA extends HistoryJPA {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String userUUID;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;

        HistoryDeviceJPA that = (HistoryDeviceJPA) o;

        if (!id.equals(that.id)) return false;
        if (!userUUID.equals(that.userUUID)) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = super.hashCode();
        result = 31 * result + id.hashCode();
        result = 31 * result + userUUID.hashCode();
        return result;
    }

    @Override
    public String toString() {
        return "HistoryDeviceJPA{" +
                "id=" + id +
                ", userUUID='" + userUUID + '\'' +
                '}';
    }

    public String getUserUUID() {
        return userUUID;
    }

    public void setUserUUID(String userUUID) {
        this.userUUID = userUUID;
    }

    public Long getId() {
        return id;
    }

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

如错误消息所述,您有两个主键(用
@Id
注释):

  • HistoryJPA
    字段
    pageAddress
  • 字段
    id

您应该去掉其中一个,或者根据您的需要创建一个新文档。

谢谢,我发现此文档也很有用: