googleapis / googleapis/google-cloud-java

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

Đang mở
#13,146 5 bình luận 1 reaction 0 người được giao Xem trên GitHub
api: firestore semver: major type: feature request
Ngôn ngữ chính
Java
Star
2.1k
Fork
1.2k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
154

Mô tả

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"
}
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.