1
我有三张桌子1)学生2)游戏和3)student_game。这里studentid
是学生表的主键,gameid
是游戏桌的主键。关联表有四列1) uuid 2) studentid 3) gameid 4) gametype
。如何使用Spring Data JPA获取关联表列?
我现在用的是弹簧数据的JPA,所以我的学生的实体类有如下关系,
@OneToMany(fetch = FetchType.EAGER)
@JoinTable(name = "student_game", joinColumns = @JoinColumn(name = "studentid"), inverseJoinColumns = @JoinColumn(name = "gameid"))
private Set<Game> GameSet;
博弈实体有如下关系,
@OneToMany(fetch = FetchType.EAGER)
@JoinTable(name = "student_game", joinColumns = @JoinColumn(name = "gameid"), inverseJoinColumns = @JoinColumn(name = "studentid"))
private Set<Student> studentSet;
在我的业务层,我能够通过使用以下逻辑为各个学生获取一组游戏名称,
Student s = studentRepository.findOne(1L);
Set<Game> games= dd.getGamesSet();
games.forEach(game-> System.out.println(game.getGameId() + " : " + game.getGameName()));
现在我的问题是,
我需要从关联表(student_game)通过传递输入作为学生ID来获取gameType列值。
如何获取关联列值?
请建议获取关联表列值的最佳方法。
谢谢您的建议。如果我删除关联表中的UUID字段和GameType字段,并在游戏表中添加gameType列,那么我的表关系会生成场景? – Vinod
然后,您可以使用双向ManyToMany关联:http://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html_single/#d5e5588 –