Hibernate:insert =" false"更新="假" hibernate生成的选择查询

时间:2015-07-14 14:09:56

标签: sql hibernate jpa orm

我有一个名为Loadout的表,没有有一个名为ProductName的列。但是hibernate xml有它,因为我需要从另一个表中获取它以用于显示目的。

Loadout.hbm.xml有一个名为productName的属性,即insert="false"update="false".

当调用session.merge()时,hibernate调用select查询,并在该查询期间发出以下错误。

  

休眠:       选择           loadout0_.ID为ID225_0_,           loadout0_.NAME为NAME225_0_,           loadout0_.PRODUCT_ID为PRODUCT3_225_0_,           loadout0_.LOCATION_ID为LOCATION4_225_0_,           loadout0_.LOADOUT_LOADING_TIME_ID为LOADOUT5_225_0_,           loadout0_.TIME_SLOTS为TIME6_225_0_,           loadout0_.PRODUCT_NAME为PRODUCT7_225_0_       从           ETHANOL.LOADOUT loadout0_       哪里           loadout0_.ID =?

     

2015-07-14 19:28:31,410 WARN [org.hibernate.util.JDBCExceptionReporter]> SQL错误:904,SQLState:   42000 2015-07-14 19:28:31,410错误   [org.hibernate.util.JDBCExceptionReporter] ORA-00904:   " LOADOUT0 _"。" PRODUCT_NAME":无效标识符

     

2015-07-14 19:28:31,412错误   [shipxpress.ethanol.server.location.web.LocationLoadoutSupport]   org.hibernate.exception.SQ LGrammarException:无法加载   实体:[shipxpress.ethanol.server.scheduling.domain.Loadout#27]

这是hbm配置文件。

<id name="id" column="ID">
    <generator class="sequence">
        <param name="sequence">ETHANOL.LOADOUT_SEQ</param>
    </generator>
</id>
<property name="name" column="NAME" />
<property name="productId" column="PRODUCT_ID" />
<property name="locationId" column="LOCATION_ID" />
<property name="loadoutLoadingTimeId" column="LOADOUT_LOADING_TIME_ID" />


<property name="timeSlots" column="TIME_SLOTS" update="false" insert="false" />


<!--  The following property is causing the issue -->
<property name="productName"  column="PRODUCT_NAME"  update="false" insert="false" />

表格的SQL

CREATE TABLE "ETHANOL"."LOADOUT" 
   (    "ID" NUMBER, 
    "NAME" VARCHAR2(100 BYTE), 
    "PRODUCT_ID" NUMBER, 
    "LOCATION_ID" NUMBER, 
    "LOADOUT_LOADING_TIME_ID" NUMBER
   );

ALTER TABLE "ETHANOL"."LOADOUT" ADD PRIMARY KEY ("ID");

0 个答案:

没有答案