googleapis / googleapis/google-cloud-java

[java-firestore] Firestore - surprising behavior of object mapping annotations

未关闭
#13,146 5 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
api: firestore semver: major type: feature request
主要语言
Java
星标
2.1k
派生
1.2k
平均合并
1 天 23 小时
30 天内合并 PR
157

描述

If `com.google.cloud.firestore.annotation.Exclude` annotation used on a property, but not on a getter, it is ignored. The same is true for `@PropertyName`

For @PropertyName it gets even more surprising if the property is public and there is a public getter. In that case a field is duplicated, one instance under the property's name and the other one under the getter's name.

Example that replicates the issue:
```java
class User {
@PropertyName("user_name")
public String name;

@Exclude
private Integer age;

public User(String name, Integer age) {
this.name = name;
this.age = age;
}

public User() {
}

public String getName() {
return name;
}

public Integer getAge() {
return age;
}
}
```

This would produce the following fields:
```
{age=integer_value: 29
, name=string_value: "abc"
, user_name=string_value: "abc"
}
```

But I would expect this:
```
{
user_name=string_value: "abc"
}
```

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。