具有一对多关系的HQL提供了“ ORA-00936:缺少表达式”异常

钦丹·帕特尔

我有2表具有一对多关系,如下所示:

表关系

我的实体类和hbm配置如下:

AuditDetail.java

public class AuditDetail implements Serializable {

    private static final long serialVersionUID = 1L;
    private String auditId;
    private Timestamp startTime;
    private Timestamp endTime;
    Set auditParameterDataSet;

    public Set getAuditParameterDataSet() {
        return auditParameterDataSet;
    }
    public void setAuditParameterDataSet(Set auditParameterDataSet) {
        this.auditParameterDataSet = auditParameterDataSet;
    }
    public String getAuditId() {
        return auditId;
    }
    public void setAuditId(String auditId) {
        this.auditId = auditId;
    }
    public void setStartTime(Timestamp startTime) {
        this.startTime = startTime;
    }
    public Timestamp getEndTime() {
        return  endTime;        
    }
    public void setEndTime(Timestamp endTime) {
        this.endTime = endTime;
    }   
}

AuditDetail.hbm.xml

<hibernate-mapping>

    <class name="com.test.AuditDetail" table="AUDITDETAIL" >          

        <id name="auditId" column="AUDITID" type="string" />

         <property name="startTime" type="java.sql.Timestamp">
              <column name="STARTTIME" sql-type="VARCHAR2(50)" />
         </property>

         <property name="endTime" type="java.sql.Timestamp">
              <column name="ENDTIME" sql-type="VARCHAR2(50)" />
         </property>

        <set name="auditParameterDataSet" cascade="all,delete-orphan" lazy="true" inverse="true">
            <key>
                <column name="AUDITID"/>
            </key>
            <one-to-many class="com.test.AuditParameter" />
        </set>

    </class>

</hibernate-mapping>

AuditParameter.java

public class AuditParameter {

    private String auditId ;
    private String parameterId;
    private String fieldName ;
    private AuditDetail auditDetail;

    public String getAuditId() {
        return auditId;
    }
    public void setAuditId(String auditId) {
        this.auditId = auditId;
    }
    public String getParameterId() {
        return parameterId;
    }
    public void setParameterId(String parameterId) {
        this.parameterId = parameterId;
    }
    public String getFieldName() {
        return fieldName;
    }
    public void setFieldName(String fieldName) {
        this.fieldName = fieldName;
    }
    public AuditDetail auditDetail() {
        return auditDetail;
    }
    public void setAuditDetail(AuditDetail auditDetail) {
        this.auditDetail = auditDetail;
    }

}

AuditParameter.hbm.xml

<hibernate-mapping>

    <class name="com.test.AuditParameter" table="AUDITPARAMETER" >          

         <id name="parameterId" type="string">
              <column name="PARAMETERID" sql-type="VARCHAR2(50)"  />
        </id>

        <many-to-one name="auditDetail" class="com.test.AuditDetail" column="AUDITID" insert="false" update="false" lazy="false">
        </many-to-one>

        <property name="auditId" type="string">
              <column name="AUDITID" sql-type="VARCHAR2(50)" not-null="false" />
        </property>

        <property name="fieldName" type="string">
              <column name="FIELDNAME" sql-type="VARCHAR2(50)" />
        </property>


    </class>
</hibernate-mapping>

我的hql查询如下:

select a.auditId, a.startTime, a.endTime, a.auditParameterDataSet from AuditDetail a;

但是当我执行此查询时,它给了我以下错误:

ORA-00936:缺少表达

以下是我的控制台查询输出。

select au0_.AUDITID as col_0_0_, au0_.STARTTIME as col_1_0_, au0_.ENDTIME as col_2_0_, . as col_3_0_ 
from AUDITDETAIL au0_ inner join AUDITPARAMETER auditparam4_ on au0_.AUDITID=auditparam4_.AUDITID

根据此输出,我们可以看到hibernate没有为a.auditParameterDataSet生成列名。为什么会这样呢?我在哪里做错了?

凯里姆·莫森

您必须使用join:-

总部:-

select a.auditId, a.startTime, a.endTime, auditParameterDataSet from AuditDetail join a.auditParameterDataSet auditParameterDataSet;

标准:-

Criteria criteria = session.createCriteria(AuditDetail.class);
criteria.setFetchMode("auditParameterDataSet", FetchMode.EAGER);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ORA-00936:oracle上缺少明显的表达式

来自分类Dev

ORA 00936缺少表达

来自分类Dev

ORA-00936:缺少表达式,尽管似乎没有缺少的表达式(SQL)

来自分类Dev

ORA-00936:缺少表达-原因是什么?

来自分类Dev

ORA-00936:插入值时缺少表达式错误

来自分类Dev

具有一对多关系和按复杂表达式排序的Linq SQL错误

来自分类Dev

ORA-00936:缺少表达-第62行

来自分类Dev

立即执行且变量抛出错误ORA-00936:缺少表达式

来自分类Dev

当我用变量替换硬编码值时,Python SQL查询返回“ ORA-00936:缺少表达式”

来自分类Dev

奇异的Oracle错误:ORA-00936:缺少表达式

来自分类Dev

收到错误:“ ORA-20999:无法解析SQL查询!<p> ORA-06550:第3行,第25列:ORA-00936:缺少表达式

来自分类Dev

标量子查询中的子查询失败,错误为ORA-00936缺少表达式

来自分类Dev

带有Oracle的Dapper提供ORA-00936:缺少表达式错误

来自分类Dev

获取java.sql.SQLSyntaxErrorException:ORA-00936:缺少表达式错误

来自分类Dev

ORA-00936:缺少表达式Oracle

来自分类Dev

实体框架ExecuteStoreCommand给出{“ ORA-00936:缺少表达式”}

来自分类Dev

ORA-00936:缺少表达式错误的SQL语法

来自分类Dev

ORA-00936:在C#中执行时缺少表达式。

来自分类Dev

ORA-00936:缺少表达式,尽管似乎没有缺少的表达式(SQL)

来自分类Dev

ORA-00936:缺少按大小写排序的表达式

来自分类Dev

ORA-00936:缺少表达式ORACLE请帮助我

来自分类Dev

Oracle数据访问错误:ORA-00936:缺少表达式

来自分类Dev

具有一对多关系的HQL给出“ ORA-00936:缺少表达式”异常

来自分类Dev

传递空的expression_list时,SQL抛出“ DBError:ORA-00936:缺少表达式”

来自分类Dev

ORA-00936:使用stringbuilder时缺少表达式

来自分类Dev

ORA-06550:第 12 行,第 9 列:PL/SQL:ORA-00936:缺少表达式 ORA-06550:第 9 行,第 5 列:PL/SQL:SQL 语句被忽略

来自分类Dev

ORA-00936:缺少表达式 Teradata

来自分类Dev

ORA-00936:缺少表达式 + ORA-02063:LIENBD_S1 Oracle 的前一行

来自分类Dev

ORA-00936: 缺少表达式 (sql-oracle)

Related 相关文章

  1. 1

    ORA-00936:oracle上缺少明显的表达式

  2. 2

    ORA 00936缺少表达

  3. 3

    ORA-00936:缺少表达式,尽管似乎没有缺少的表达式(SQL)

  4. 4

    ORA-00936:缺少表达-原因是什么?

  5. 5

    ORA-00936:插入值时缺少表达式错误

  6. 6

    具有一对多关系和按复杂表达式排序的Linq SQL错误

  7. 7

    ORA-00936:缺少表达-第62行

  8. 8

    立即执行且变量抛出错误ORA-00936:缺少表达式

  9. 9

    当我用变量替换硬编码值时,Python SQL查询返回“ ORA-00936:缺少表达式”

  10. 10

    奇异的Oracle错误:ORA-00936:缺少表达式

  11. 11

    收到错误:“ ORA-20999:无法解析SQL查询!<p> ORA-06550:第3行,第25列:ORA-00936:缺少表达式

  12. 12

    标量子查询中的子查询失败,错误为ORA-00936缺少表达式

  13. 13

    带有Oracle的Dapper提供ORA-00936:缺少表达式错误

  14. 14

    获取java.sql.SQLSyntaxErrorException:ORA-00936:缺少表达式错误

  15. 15

    ORA-00936:缺少表达式Oracle

  16. 16

    实体框架ExecuteStoreCommand给出{“ ORA-00936:缺少表达式”}

  17. 17

    ORA-00936:缺少表达式错误的SQL语法

  18. 18

    ORA-00936:在C#中执行时缺少表达式。

  19. 19

    ORA-00936:缺少表达式,尽管似乎没有缺少的表达式(SQL)

  20. 20

    ORA-00936:缺少按大小写排序的表达式

  21. 21

    ORA-00936:缺少表达式ORACLE请帮助我

  22. 22

    Oracle数据访问错误:ORA-00936:缺少表达式

  23. 23

    具有一对多关系的HQL给出“ ORA-00936:缺少表达式”异常

  24. 24

    传递空的expression_list时,SQL抛出“ DBError:ORA-00936:缺少表达式”

  25. 25

    ORA-00936:使用stringbuilder时缺少表达式

  26. 26

    ORA-06550:第 12 行,第 9 列:PL/SQL:ORA-00936:缺少表达式 ORA-06550:第 9 行,第 5 列:PL/SQL:SQL 语句被忽略

  27. 27

    ORA-00936:缺少表达式 Teradata

  28. 28

    ORA-00936:缺少表达式 + ORA-02063:LIENBD_S1 Oracle 的前一行

  29. 29

    ORA-00936: 缺少表达式 (sql-oracle)

热门标签

归档