[英]Hibernate Query for unmapped join table
我是一个新手J2EE努力学习Hibernate的。 我有两个表,系统和游戏,以及连接表称为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 S WHERE S.game_id = 1]映射Systems_game。
我知道,我没有systems_game在我的hibernate.cfg.xml文件映射,但是我不知道如何映射这一点,因为我没有一类吧。 我是否需要以其他方式处理我的多对多关系,并为其授课? 我忽略的任何其他方式都可以帮助我达到预期的效果吗?
如果您需要更多代码,那么我会发布。
2种方法:
sql方式:
sessionFactory.getCurrentSession()。createNativeQuery( “SELECT * FROM systems_game s其中s.game_id = 1”)...
hibernate(java)方式:
游戏= session.createQuery(从游戏其中id = 1).uniqueResult()列出系统= game.getSystems()
只需尝试伪代码!
HQL与对象有关,您不应该坚持使用数据库架构。
from SYSTEM as s join s.games as g where g.id=:id
这就是你所需要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.