Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 从多对多关系中提取_Java_Hibernate_Jpa_Spring Data Jpa_Spring Data Rest - Fatal编程技术网

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()