max*_*mus 2 postgresql hibernate
有两个表:bb_players和bb_player_skills.玩家技能表与bb_players有一对一的关系,也是bb_players的外键.
执行此代码时出错:
Query q = em.createNamedQuery(PlayerSkill.DELETE_SKILL_BY_PLAYER_ID);
q.setParameter("playerID", playerID);
q.executeUpdate();
命名查询是:
 @NamedQuery(name = PlayerSkill.DELETE_SKILL_BY_PLAYER_ID, query = "DELETE FROM   PlayerSkill s " +
 " WHERE s.player.id = :playerID")
postgresql日志的错误是:
ERROR,42601,"syntax error at or near ""cross""",,,,,, 
 "delete from bb_player_skills cross join bb_players player1_ where id=$1",30,,""
我的命名查询是错误的,我应该如何重写它?
看来这可能是一个开放的Hibernate问题,具体取决于您的Hibernate版本.
来自:https://hibernate.atlassian.net/browse/HHH-7314
使用带有需要通过Hibernate实体连接加入的条件的JPA Delete查询会为PostgreSQL生成无效的SQL.PostgreSQL不能在DELETE查询的FROM子句中使用CROSS JOIN.
| 归档时间: | 
 | 
| 查看次数: | 1278 次 | 
| 最近记录: |