【问题标题】:org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for joinorg.hibernate.hql.internal.ast.QuerySyntaxException:连接的预期路径
【发布时间】:2016-01-13 09:41:42
【问题描述】:

hql 有问题
我有 3 张桌子
1.用户(user_id = pk,用户名)
2. 组 (group_id = pk, group_name)
3. 用户组(user_id = fk, group_id = fk)

<hibernate-mapping>
<class name="com.model.authRole.UserGroups" table="user_groups" catalog="db_realm" optimistic-lock="version">
    <composite-id name="id" class="com.model.authRole.UserGroupsId">
        <key-property name="userId" type="int">
            <column name="user_id" />
        </key-property>
        <key-property name="groupId" type="int">
            <column name="group_id" />
        </key-property>
    </composite-id>
    <many-to-one name="groups" class="com.model.authRole.Groups" update="false" insert="false" fetch="select">
        <column name="group_id" not-null="true" />
    </many-to-one>
    <many-to-one name="users" class="com.model.authRole.Users" update="false" insert="false" fetch="select">
        <column name="user_id" not-null="true" />
    </many-to-one>
    <property name="aktiv" type="boolean">
        <column name="aktiv" not-null="true" />
    </property>
</class>

我想显示用户名和group_name,但来自hql 的错误

from UserGroups  ug 
inner  join  Users  u on u.user = ug.user_id
inner  join  Groups g on g.group = ug.group_id

并记录错误

org.hibernate.hql.internal.ast.QuerySyntaxException: 预期路径 加入! [来自 com.model.authRole.UserGroups ug 内部加入 u.user 上的用户 u = ug.user_id 内部加入 g.group 上的组 g = ug.group_id]

如何解决?

【问题讨论】:

  • 请发布用户和组类

标签: java sql hibernate join hql


【解决方案1】:

我假设 UserGroups 类包含来自 User 的对象和来自 Group 类的对象

session.createQuery("from UserGroups ug where ug.User = :user and ug.Group =:group").setParameter("user", (Users)session.get(Users.class,user_id)).setParameter("group", (Groups)session.get(Groups.class,group_id));

【讨论】:

    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2012-05-14
    相关资源
    最近更新 更多