[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-5270) Oracle Error ORA-01719 on @ManyToMany associations with @FilterJoinTable annotation
Nico Mack (JIRA)
noreply at atlassian.com
Thu May 27 08:07:54 EDT 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=37290#action_37290 ]
Nico Mack commented on HHH-5270:
--------------------------------
putting the FilterJoinTable condition in parenthesis solved the issue. Perhaps the condition should be wrapped in parenthesis whenever an Operator is detected ?
> Oracle Error ORA-01719 on @ManyToMany associations with @FilterJoinTable annotation
> -----------------------------------------------------------------------------------
>
> Key: HHH-5270
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5270
> Project: Hibernate Core
> Issue Type: Bug
> Components: query-hql
> Environment: Hibernate 3.4.0GA (shipped with JBoss 5.1GA) Oracle 11R2 Standard Edition
> Reporter: Nico Mack
>
> I have an User EJB Bean who can be assigned via a relation table any number of roles. The following mapping in my User Bean
> @ManyToMany(fetch = FetchType.LAZY)
> @FilterJoinTable(name = "contextFilter", condition = "context_id = :contextId OR context_id IS NULL")
> @JoinTable(name = "rel_user_role", schema = "usermanagement",
> joinColumns = {@JoinColumn(name = "user_id")},
> inverseJoinColumns = {@JoinColumn(name = "role_id")})
> public Set <Role> getRoles()
> {
> return m_Roles;
> }
> results in the following query being generated:
> select roles0_.user_id as user4_1_,
> roles0_.role_id as role3_1_,
> role1_.id as id5_0_,
> role1_.created as created5_0_,
> role1_.creator as creator5_0_,
> role1_.modified as modified5_0_,
> role1_.modifier as modifier5_0_,
> role1_.description as descript4_5_0_,
> role1_.name as name5_0_
>
> from usermanagement.rel_user_role roles0_,
> usermanagement.role role1_
>
> where roles0_.role_id=role1_.id(+) and roles0_.context_id = ? OR roles0_.context_id IS NULL and roles0_.user_id=?
> which in turn causes the following oracle error:
> java.sql.SQLException: ORA-01719: outer join operator (+) not allowed in operand of OR or IN
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list