Как исправить дублирующие логические поля Hibernate в Java - PullRequest
0 голосов
/ 09 апреля 2019

Я создал объект JPA для таблицы БД.Есть логическое поле isPreferred.Если я получаю записи в таблице, у меня есть дубликаты полей в ответе.Один с «предпочитаемым» = истинным и один с «isPreferred» = истинным.Я ожидаю только поле isPreferred.Как я могу решить эту проблему?

Я уже пробовал использовать класс Boolean-оболочки.Также пытался использовать setter, как isPreferred и isIsPreferred / setPreferred и setIsPreferred.

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
    }
],

Ответы [ 2 ]

2 голосов
/ 09 апреля 2019

На мой взгляд, у вас есть два варианта:

  • Аннотируйте класс с помощью @XmlAccessorType(XmlAccessType.FIELD)
  • Поместите аннотацию @XmlElement(name = "isPreferred") на установщик поля

В настоящее время вы создаете второе поле с помощью метода get.

0 голосов
/ 09 апреля 2019

Если я отлаживаю в своем ответном методе, я вижу только одно поле, как ожидалось, но в ответе почтальона у меня есть 2 логических поля: представление отладчика с Response.ok (getAddresses ()). Build ()

...