2016-06-08 7 views
0

У меня есть три таблицы: пользователи (идентификатор, имя, Логин, пароль), роли (номер, имя), user_roles (идентификатор, user_id, ROLE_ID)Ebean ManyToMany с таблицей моста найти все запросы

Это мой код

@Entity 
@Table(name = "users") 
public class User extends Model { 
    @Id 
    public Long id; 

    public String name; 

    public String login; 

    public String password; 

    @ManyToMany 
    @JoinTable(
      name = "user_roles", 
      joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), 
      inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id") 
    ) 
    public Set<Role> roles; 

    public static Finder<Integer, User> find = new Finder<>(User.class); 
} 

@Entity 
@Table(name = "roles") 
public class Role extends Model { 
    @Id 
    public Long id; 

    public String name; 

    @ManyToMany(mappedBy = "roles") 
    public List<User> users; 

    public static Finder<Integer, Role> find = new Finder<>(Role.class); 
} 

Я хочу, чтобы отобразить всех пользователей с ролями, например: { "ID": 1, "имя": "My Name", "логин": "My Login", "пароль": "My Password ", role: [{" name ":" ADMIN "}, {" name ":" USER "}]} Как это сделать? Я новичок в Ebean и ORM. Спасибо за любую помощь.

Update

public Result all() { 
    List<User> users = User.find.all(); 
    return ok(toJson(users)); 
} 

Но теперь я получаю StackOverflow ошибка бесконечной рекурсии.

+0

Я решил это ответ на [это] (http://stackoverflow.com/questions/3325387/infinite-recursion-with-jackson-json-and-hibernate-jpa -issue) вопрос от пользователя Kurt Bourbaki – Evgeniy

ответ