Java Spring数据Rest多对多树投影映射
我有一个名为ContentPath的实体,它可能有一个相同类型的父对象,还有一个相同类型的子对象,表示为: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
@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;