Это мои сущности
@Entity
public class User {
@ManyToMany(mappedBy="admins")
private Set<Game> adminForGames = new HashSet<Game>();
@Entity
public class Game {
@ManyToMany
@JoinTable(
name="Game_adminUsers",
joinColumns=@JoinColumn(name="Game_id"),
inverseJoinColumns=@JoinColumn(name="User_id")
)
private Set<User> adminUsers = new HashSet<User>();
И вот как я создаю новый Game
:
Game game = new Game(index, name);
game.getAdminUsers().add(someUser);
em.persist(game);
Как видите, я не обновляю someUser
добавить новую игру к его adminForGames
, хотя, в соответствии со спецификацией JPA, это моя ответственность.
Тем не менее, она работает нормально, что логично, потому что запись User
на самом деле не должна бытьзаписано (потому что отношение использует таблицу соединений).
Работает ли оно "случайно" (моя реализация - Hibernate) или я действительно делаю это правильно?