如何在Java中修复Hibernate复制布尔字段

问题描述 投票:0回答:2

我为数据库表创建了一个JPA实体。有一个布尔字段“isPreferred”。如果我得到表格的条目,我在答案中有重复的字段。一个“preferred”= true,另一个“isPreferred”= true。我只期望isPreferred字段。我怎么解决这个问题?

我已经尝试过使用布尔包装器类。还尝试使用像isPreferred和isIsPreferred / setPreferred和setIsPreferred这样的setter。

import javax.persistence.*;
import javax.xml.bind.annotation.XmlElement;

@Entity
public class Address {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
  private String street;
  private String houseNr;
  private String zip;
  private String city;
  private String country;
  @XmlElement(name = "isPreferred")
  private boolean preferred;

  ...getters/setters...

  public boolean isPreferred() {
    return preferred;
  }

  public void setPreferred(boolean isPreferred) {
    this.preferred = isPreferred;
  }
}

我希望我的响应中只有一个布尔字段。只有“isPreferred”字段,但实际我得到首选和isPreferred:

"addresses": [
    {
        "zip": "12345",
        "country": "DEU",
        "city": "Köln",
        "street": "Hauptstr.",
        "isPreferred": true,
        "houseNr": "1",
        "type": "homeAddress",
        "preferred": true
    }
],
hibernate jpa jaxb jax-rs
2个回答
2
投票

在我看来,你基本上有两个选择:

  • 使用@XmlAccessorType(XmlAccessType.FIELD)注释类
  • 将注释@XmlElement(name = "isPreferred")放在字段的setter上

目前,您正在使用getter创建第二个字段。


0
投票

如果我调试到我的响应方法,我只看到一个像预期的字段,但在邮递员响应中我有2个布尔字段:debugger view with Response.ok(getAddresses()).build()

© www.soinside.com 2019 - 2024. All rights reserved.