hibernate - 如何修复 Hibernate 在 Java 中复制布尔字段
问题描述
我为数据库表创建了一个 JPA 实体。有一个布尔字段“isPreferred”。如果我得到表格的条目,我的答案中有重复的字段。一种是“preferred”=true,一种是“isPreferred”=true。我只希望 isPreferred 字段。我怎么解决这个问题?
我已经尝试过使用布尔包装类。还尝试使用 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
}
],
解决方案
You basically have two options in my opinion:
- Annotate the class with
@XmlAccessorType(XmlAccessType.FIELD)
- Put the annotation
@XmlElement(name = "isPreferred")
on the setter of the field
Currently, you are creating a second field with the getter.
推荐阅读
- c++ - 重命名符号时如何排除库包含?
- r - 在 R 中形成重要结果的列表
- node.js - 在生产环境中使用带有 express 的套接字(heroku)
- r - ggplot/qqplotr 达到均匀分布
- node.js - 推送被拒绝,无法编译 Node js 应用程序
- wpf - 调用刷新时,CollectionViewSource 未触发过滤器事件
- rust - 我可以定义一个将扩展为函数调用的宏吗?
- reactjs - 为什么我不能在 react-select 的 AsyncProps 上使用 Omit?
- php - PHP 清理 MySQL 的用户输入
- tableau-api - 在 TABLEAU 中将数据源更改为 SQL Server