Configuring Spring Processing Data Processing @ManyToMany

I have a simple project running under Spring-Data-Rest to expose some objects via the Rest API, like this one (simplified, minus Setters / Getters):

@Entity 
public class Group {

    @Id
    @GeneratedValue
    private int id;

    ...

}

@Entity 
public class Person{

    @Id
    @GeneratedValue
    private int id;

    ...

}

Now, obviously, each group can have people as members that can be easily resolved through @ManyToMany. Unfortunately (or usually?) Membership in a group contains more information than just "is a member." For example, it should also include “admin of” or “hidden member” information.

This naturally leads to an additional entity ...

@Entity 
public class GroupMember {

    @OneToOne(optional = false)
    @JoinColumn(updatable = false)
    private Person member;

    @OneToOne(optional = false)
    @JoinColumn(updatable = false)
    private Group group;

    private boolean admin;

    private boolean hidden;

        ...

}

, , , ... POST ing a text/uri-list to () /groups/1/members, GroupMember, /groupMembers/, , imho, REST .

POST () GroupMember ? , @RepositoryRestController , POST /groups/1/members, text/uri-list ( , , ). , , , , .

Hibernate @ManyToMany ... ...

+4
2

spring text/uri-list , Resources :

@RequestBody Resources<Object> incoming

uris, incoming.getLinks()

spring - org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController#createPropertyReference

+1

, , , GroupMember, . API, /groups/1/members? , , - , Person GroupMember. , -.

0

All Articles