У меня есть три таблицы: пользователи (идентификатор, имя, Логин, пароль), роли (номер, имя), 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 ошибка бесконечной рекурсии.
Я решил это ответ на [это] (http://stackoverflow.com/questions/3325387/infinite-recursion-with-jackson-json-and-hibernate-jpa -issue) вопрос от пользователя Kurt Bourbaki – Evgeniy