Java 从多对多关系中提取
假设我与中间表有多对多关系Java 从多对多关系中提取,java,hibernate,jpa,spring-data-jpa,spring-data-rest,Java,Hibernate,Jpa,Spring Data Jpa,Spring Data Rest,假设我与中间表有多对多关系 // one to many relationship with post_tag post - id - title post_tag - post_id - tag_id - selected // one to many relationship with post_tag tag - id - name 这是post和tag关系的配置 class Post { // ... @OneToMany(mappedBy
// one to many relationship with post_tag
post
- id
- title
post_tag
- post_id
- tag_id
- selected
// one to many relationship with post_tag
tag
- id
- name
这是post和tag关系的配置
class Post {
// ...
@OneToMany(mappedBy = "post")
Set<PostTag> postTag;
// ...
}
class Tag {
// ...
@OneToMany(mappedBy = "tag")
Set<PostTag> postTag;
// ...
}
我如何从post实体获取这样的响应
{
"id" : 1,
"title" : "test ttitle",
"tags" : {
"id" : 1,
"name" : "test name",
"post_tag" : {
"post_id" : 1,
"tag_id" : 1,
"selected" : "T"
}
}
}
你知道我该怎么开始吗?这是我第一次使用多对多关系,我真的很困惑,因为在一对多关系上,单向使用一个简单的
post.findAll()
我可以通过它与另一个表的对应关系得到结果。但是关于多对多,我真的不知道从哪里开始,特别是其中包含了一个中间表它不是多对多。如果是,您将使用注释
manytomy
。我不确定到底是什么问题。如果加载一个Post并调用getPostTag(),则会得到它的所有postTag。如果您对PostTag()调用getTag(),您将得到它们的标记(假设这些方法存在,并且假设PostTag确实链接到Tag和Post,而不是您发布的学生和课程)。如何将这个实体图转换成JSON完全取决于您,它不是多对多的。如果是,您将使用注释manytomy
。我不确定到底是什么问题。如果加载一个Post并调用getPostTag(),则会得到它的所有postTag。如果您对PostTag()调用getTag(),您将得到它们的标记(假设这些方法存在,并且假设PostTag确实链接到Tag和Post,而不是您发布的学生和课程)。如何将这个实体图转换为JSON完全取决于您。
post.findAll()