【发布时间】:2014-12-05 22:29:49
【问题描述】:
我是一名尝试学习 Hibernate 的 J2EE 新手。我有两个表,System 和 Game,以及一个名为 Systems_game 的连接表。
我希望能够输入一个 game_id 并获得该游戏的所有系统。
我在 System.java 和 Game.java 上使用注释来创建多对多关系。
@ManyToMany(targetEntity = System.class, cascade = { CascadeType.ALL })
@JoinTable(name="Systems_game",
joinColumns = { @JoinColumn(name="game_id") },
inverseJoinColumns = { @JoinColumn(name="system_id") })
private List<Game> games;
这是我用来尝试获得我想要的结果的方法。
@Override
public List getGameSystem(){
return sessionFactory.getCurrentSession().createQuery("from Systems_game S WHERE S.game_id=1").list();
}
当它运行时,我得到
“请求处理失败;嵌套异常是 org.hibernate.hql.ast.QuerySyntaxException:Systems_game 未映射 [来自 Systems_game S WHERE S.game_id=1]”
我知道我的 hibernate.cfg.xml 文件中没有系统游戏映射,但我不知道如何映射它,因为我没有一个类。我是否需要以不同的方式处理我的多对多关系并赋予它自己的类?我忽略的任何其他方式可以帮助我达到预期的结果?
如果您需要更多代码,我会发布。
【问题讨论】:
标签: java sql spring hibernate jakarta-ee