gpt4 book ai didi

java - Jhipster - 一对多关系,在客户端看不到集合

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:22 29 4
gpt4 key购买 nike

我正在使用 jhipster v2。我有两个实体(父亲、女儿),父亲与女儿有一对多关系,女儿与父亲有多对一关系。我刚刚对生成的 java 代码做了一个修改:

  • 我已将父女关系的获取类型配置为 EAGER。

当我获得所有父亲时,在 Java 端我可以看到附加到父亲的女儿集合,但我看不到客户端(Anglarjs)端的集合,父亲 javascript 对象没有“女儿”属性(property)。

这正常吗?在服务器端:

@Entity
@Table(name = "T_CLIENT")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Client implements Serializable {
...
@OneToMany(mappedBy = "client", fetch = FetchType.EAGER)
@JsonIgnore
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Adresse> adresses = new HashSet<>();
@OneToOne
private Langue langue;
...
}

客户端(在我的 angularjs Controller 中):

$scope.clients = Client.query(function(){
$log.info($scope.clients);
});

在客户端,我可以看到客户端的“语言”属性,但客户端中没有“地址”属性。我不明白为什么。

感谢您的回答。

最佳答案

可能是因为 @JsonIgnore 注解。如果您不使用 DTO 发送您的 Client,Jackson 将不会序列化和反序列化您的 addresses 数据。

解决方案 1: 移除 @JsonIgnore 注释。

解决方案 2:创建一个像 UserDTO 这样的 DTO 并使用它发送给您的客户端。我可以为您推荐一个很棒的库:MapStruct ( http://mapstruct.org )。它将帮助您非常轻松地将 User 对象映射到 UserDTO。它已经在最新版本的 JHipster 中使用。

解决方案 3: 如果这不是 @JsonIgnore 引起的问题,而是有关使用 hibernate 获取数据的更多信息,您将在此处找到答案:https://stackoverflow.com/a/19061378/4643869

关于java - Jhipster - 一对多关系,在客户端看不到集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28111493/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com