【问题标题】:Rest Get method return incorect element nameRest Get 方法返回不正确的元素名称
【发布时间】:2019-02-25 23:09:12
【问题描述】:

我在我的 restfull 网络服务 metgod 中的我的 get 方法有问题。我为我的用户实体创建了一个控制器,并且我有一个变量 isActive(boolean): isActive 是一个名字,在我的所有代码中我没有一个简单的活动词,但是当我使用邮递员时,他们会返回我:

  {
        "userId": 5,
        "emailLogin": "t5.email@be-tse.com",
        "firstName": "Name_5",
        "lastName": "Lastname_5",
        "userDepartment": "SALESFORCE",
        "roles": [],
        "active": false
    }

最后一个元素应该是 isActive - 为什么要更改?我使用 lombok 这可能是一个原因吗?

我的实体:

@Getter
@Setter
@Builder
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "USER")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "USER_ID")
    private Integer userId;

    @Column(nullable = false, unique = true)
    private String emailLogin;

    private String firstName;

    private String lastName;


    @Column(nullable = false)
    @JsonIgnore
    private String password;

    private boolean isActive;

    @ManyToOne(optional = false)
    @JoinColumn(name = "DEPARTMENT_ID")
    @JsonIgnore
    private UserDepartment userDepartment;

    @ManyToMany
    @JsonIgnore
    @JoinTable(name = "USER_ROLES",
            joinColumns = @JoinColumn(name = "USER_ID"),
            inverseJoinColumns = @JoinColumn(name = "ROLE_ID"))
    private Set<UserRole> roles;

    public User(String emailLogin, String firstName, String lastName, String password, boolean isActive, UserDepartment userDepartment, Set<UserRole> roles) {
        this.emailLogin = emailLogin;
        this.firstName = firstName;
        this.lastName = lastName;
        this.password = password;
        this.isActive = isActive;
        this.userDepartment = userDepartment;
        this.roles = roles;
    }

}

【问题讨论】:

  • 在对象中显示isActive,getter/setter 是什么?
  • 我使用 lombok,所以我没有 setter/getter
  • 您可能会觉得它令人困惑,但标准的 getter/setter 用于布尔值 isActiveactive 是相同的,即 getter isActive()setter setActive(boolean isActive) `。

标签: java rest postman lombok


【解决方案1】:

您必须设置准确的字段名称

@JsonProperty("isActive")
public boolean isActive() {
    return isActive;
}

【讨论】:

  • 它也应该可以在不手动定义 getter 的情况下工作,只需将 @JsonProperty("isActive") 放在字段上即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 2019-02-19
相关资源
最近更新 更多