Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据Rest多对多树投影映射_Java_Spring_Spring Data Rest - Fatal编程技术网

Java Spring数据Rest多对多树投影映射

Java Spring数据Rest多对多树投影映射,java,spring,spring-data-rest,Java,Spring,Spring Data Rest,我有一个名为ContentPath的实体,它可能有一个相同类型的父对象,还有一个相同类型的子对象,表示为: @Id @Column(name = "ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "NAME", length = 50) @NotNull private String name; @C

我有一个名为ContentPath的实体,它可能有一个相同类型的父对象,还有一个相同类型的子对象,表示为:

    @Id
    @Column(name = "ID")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "NAME", length = 50)
    @NotNull
    private String name;

    @Column(name = "DESCRIPTION")
    private String description;

    @ManyToOne
    @JoinColumn(name="CONTENT_PATH_ID")
    public ContentPath contentPath;

    @OneToMany(mappedBy="contentPath")
    public Set<ContentPath> contentPaths;

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(
            name = "ACTIVITY_CONTENT_PATH",
            joinColumns = {@JoinColumn(name = "CONTENT_PATH_ID", referencedColumnName = "ID")},
            inverseJoinColumns = {@JoinColumn(name = "ACTIVITY_ID", referencedColumnName = "ID")})
    private Set<Activity> activities;

为什么会这样?如何修复它?

这是SDR的正常行为。默认情况下,它不显示
id
。要启用此功能,只需注册一个bean,如下所示:

@Bean
public RepositoryRestConfigurerAdapter repositoryRestConfigurerAdapter() {
    return new RepositoryRestConfigurerAdapter() {
        @Override
        public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
            config.exposeIdsFor(ContentPath.class);
            super.configureRepositoryRestConfiguration(config);
        }
    };
}
关于
说明
-您有以下字段:

@Column(name = "DESCRIPTION")
private String description;

这是SDR的正常行为。默认情况下,它不显示
id
。要启用此功能,只需注册一个bean,如下所示:

@Bean
public RepositoryRestConfigurerAdapter repositoryRestConfigurerAdapter() {
    return new RepositoryRestConfigurerAdapter() {
        @Override
        public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
            config.exposeIdsFor(ContentPath.class);
            super.configureRepositoryRestConfiguration(config);
        }
    };
}
关于
说明
-您有以下字段:

@Column(name = "DESCRIPTION")
private String description;

您有
ContentPath.id
的公共getter吗?有
public Long getId(){return id;}
但奇怪的是,它还返回一个描述,但我的投影中没有描述。它还返回第一级的id,但不是第二个。@LuizMitidiero别忘了接受/投票给那些帮助你的答案……你有
ContentPath.id
的公共getter吗?是的
public Long getId(){return id;}
但奇怪的是它也在返回描述,但我的投影中没有描述。它也在返回第一级的id,但不是第二级的id。@LuizMitidiero别忘了接受帮助你的/upvote答案……它解决了问题,但我想知道为什么?我怎样才能暴露其他领域,比如关系?@LuizMitidiero看:@LuizMitidiero…这个:它解决了问题,但我想知道为什么?我怎样才能暴露其他领域,比如关系?@LuizMitidiero看:@LuizMitidiero…这个:
@Column(name = "DESCRIPTION")
private String description;