lansedeshuyue 2013-07-30 08:58 采纳率: 0%
浏览 1083

Hibernate3中,有两个表,从表主键名叫“zhujian” 有一个属性叫“id”

Hibernate3中,有两个表,从表主键名叫“zhujian” 有一个属性叫“id”
报错如下
七月 30 16:02:56 , 602 DEBUG ErrorCounter:68 - throwQueryException() : no errors
七月 30 16:02:56 , 602 DEBUG QueryTranslatorImpl:216 - HQL: select u from com.lucky.bizmodule.lottracking.productsample.bizlogic.model.CSamplecardoutd u ** where u.id ='R13071900046' **

七月 30 16:02:56 , 602 DEBUG QueryTranslatorImpl:217 - SQL: select csamplecar0_.zhujian as zhujian1644_, csamplecar0_.OUTID as OUTID1644_, csamplecar0_.id as id1644_, csamplecar0_.PRODUCTCODE as PRODUCTC4_1644_, csamplecar0_.OLDCODE as OLDCODE1644_, csamplecar0_.DESCRIPTION as DESCRIPT6_1644_, csamplecar0_.CARDTYPE as CARDTYPE1644_, csamplecar0_.COLOR as COLOR1644_, csamplecar0_.COMPOSITION as COMPOSIT9_1644_, csamplecar0_.WIDTH as WIDTH1644_, csamplecar0_.WEIGHT as WEIGHT1644_, csamplecar0_.FABRIC as FABRIC1644_, csamplecar0_.SPECIFICATION as SPECIFI13_1644_, csamplecar0_.DENSITY as DENSITY1644_, csamplecar0_.PRICE as PRICE1644_, csamplecar0_.MONEY as MONEY1644_, csamplecar0_.CURRENCY as CURRENCY1644_, csamplecar0_.LENGTH as LENGTH1644_, csamplecar0_.LASTWEIGHT as LASTWEIGHT1644_, csamplecar0_.WARPSHRINKAGE as WARPSHR20_1644_, csamplecar0_.WEFTSHRINKAGE as WEFTSHR21_1644_, csamplecar0_.WARPSLIP as WARPSLIP1644_, csamplecar0_.WEFTSLIP as WEFTSLIP1644_, csamplecar0_.WARPTEAR as WARPTEAR1644_, csamplecar0_.WEFTTEAR as WEFTTEAR1644_, csamplecar0_.MEMO as MEMO1644_, csamplecar0_.QUANTITY as QUANTITY1644_, csamplecar0_.SPARE1 as SPARE28_1644_, csamplecar0_.SPARE2 as SPARE29_1644_, csamplecar0_.CYLINDERNUM as CYLINDE30_1644_, csamplecar0_.STATUS as STATUS1644_, csamplecar0_.OLDID as OLDID1644_ from LEWEI.C_SAMPLECARDOUTD csamplecar0_ where ** csamplecar0_.zhujian='R13071900046' **

七月 30 16:02:56 , 602 DEBUG ErrorCounter:68 - throwQueryException() : no errors
Hibernate: select csamplecar0_.zhujian as zhujian1644_, csamplecar0_.OUTID as OUTID1644_, csamplecar0_.id as id1644_, csamplecar0_.PRODUCTCODE as PRODUCTC4_1644_, csamplecar0_.OLDCODE as OLDCODE1644_, csamplecar0_.DESCRIPTION as DESCRIPT6_1644_, csamplecar0_.CARDTYPE as CARDTYPE1644_, csamplecar0_.COLOR as COLOR1644_, csamplecar0_.COMPOSITION as COMPOSIT9_1644_, csamplecar0_.WIDTH as WIDTH1644_, csamplecar0_.WEIGHT as WEIGHT1644_, csamplecar0_.FABRIC as FABRIC1644_, csamplecar0_.SPECIFICATION as SPECIFI13_1644_, csamplecar0_.DENSITY as DENSITY1644_, csamplecar0_.PRICE as PRICE1644_, csamplecar0_.MONEY as MONEY1644_, csamplecar0_.CURRENCY as CURRENCY1644_, csamplecar0_.LENGTH as LENGTH1644_, csamplecar0_.LASTWEIGHT as LASTWEIGHT1644_, csamplecar0_.WARPSHRINKAGE as WARPSHR20_1644_, csamplecar0_.WEFTSHRINKAGE as WEFTSHR21_1644_, csamplecar0_.WARPSLIP as WARPSLIP1644_, csamplecar0_.WEFTSLIP as WEFTSLIP1644_, csamplecar0_.WARPTEAR as WARPTEAR1644_, csamplecar0_.WEFTTEAR as WEFTTEAR1644_, csamplecar0_.MEMO as MEMO1644_, csamplecar0_.QUANTITY as QUANTITY1644_, csamplecar0_.SPARE1 as SPARE28_1644_, csamplecar0_.SPARE2 as SPARE29_1644_, csamplecar0_.CYLINDERNUM as CYLINDE30_1644_, csamplecar0_.STATUS as STATUS1644_, csamplecar0_.OLDID as OLDID1644_ from LEWEI.C_SAMPLECARDOUTD csamplecar0_ where csamplecar0_.zhujian='R13071900046'
七月 30 16:02:56 , 602 WARN JDBCExceptionReporter:77 - SQL Error: 1722, SQLState: 42000
七月 30 16:02:56 , 602 ERROR JDBCExceptionReporter:78 - ORA-01722: 无效数字
问题是Hibernate3 自动地把从表中的属性名"id",映射为了从表的主键“zhujian”,从而导致报错
有什么办法解决吗,搞了两天了,还没处理

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 15:00
    关注

    看起来是一个 HQL 查询语句抛出了异常,导致无法执行。HQL 是 Hibernate 的查询语言,用来查询实体(entity)而非数据库中的表。


    在这个例子中,你正在查询 CSamplecardoutd 实体,并指定了一个查询条件 u.id ='R13071900046',表示你希望获取 id 属性等于 'R13071900046' 的实体。


    但是从日志中可以看出,HQL 查询被转化成了原生 SQL 查询,并且查询条件被改成了 csamplecar0_.zhujian='R13071900046',也就是说,数据库中的表的主键被用来作为查询条件,而不是实体的 id 属性。


    这可能是因为在 Hibernate 中的映射文件中,你将 CSamplecardoutd 实体的 id 属性映射到了数据库表的主键上。


    为了解决这个问题,你可以尝试修改 HQL 查询语句,将查询条件改为 u.zhujian ='R13071900046',或者修改实体映射关系,使得 id 属性映射到数据库表的其他字段上。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料