hibernate出现列名czqcode无效无效,怎么解决

hibernate中出现org.hibernate.id.IdentifierGenerationException怎么解决啊_百度知道
hibernate中出现org.hibernate.id.IdentifierGenerationException怎么解决啊
当然如果是用oracle的话最好是用sequence生成如果主键id是你手动指定的话,同时生成方式是assigned.还有其他很多生成方式,需要你手动指定,那么它也和其他字段一样,那么首先把主键生成方式改为native如果你的主键id是自增的,你在网上查查
来自团队:
其他类似问题
为您推荐:
其他1条回答
配置文件里设置主键生成策略有关系,你的id不能正常生成,可能你有相同的id要插入数据库就报这个错误了
hibernate的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁使用Hibernate的SQL 别名查询出现 列名无效 ?怎么解决啊? - Hibernate - New - ITeye论坛
使用Hibernate的SQL 别名查询出现 列名无效 ?怎么解决啊?
锁定老帖子
该帖已经被评为新手帖
等级: 初级会员
来自: 南京
发表时间:&&
大家好,我在项目中遇到下面的一个问题:
我的用户表 usertable 中有很多字段,其映射的pojo类为: Usertable.java
Usertable.java
.....................
// 其余属性和setter/getter方法
现在我只想查询usertablei表中的 userid和username字段信息,其余的信息不需要
我使用如下查询语句:
String hql = "select u.userid as {usr.userid},u.username as {usr.username} from usertable u";
List list = session.createSQLQuery( hql ).addEntity("usr" , Usertable.class).list();
结果,出错,提示 “列名无效”,但是我将 hql 语句改为:
String hql = "select {usr.*} from usertable";
List list = session.createSQLQuery( hql ).addEntity("usr" , Usertable.class).list();
执行结果没有错误,为什么别名查询所有属性信息成功,而查询某几个属性信息就出错呢??
请大家帮忙解决下
来自: 不让你们知道
发表时间:&&
注意:如果你明确地列出了每个属性,你必须包含这个类和它的子类的所有属性
请登录后投票
等级: 初级会员
来自: 南京
发表时间:&&
恩,是的。。。但是有什么方法可以实现只取部分属性并封装?我的项目的用户表中有太多的字段,但是每次用到的也就 2--3 个,如 userid,username等。现在我每次取用户信息(我只用到userid,username 2个属性),hibernate都把用户表中的所有信息全部读取出来,这样太消耗时间。。。。有什么办法可以实现读取并封装想要的属性??????
请登录后投票
来自: 不让你们知道
发表时间:&&
hibernate更偏向于对象,为什么不重构对象呢?如果你一直在调用uid和uname,其他的字段又不常用,那是你没设计好
请登录后投票
跳转论坛:移动开发技术
Web前端技术
Java企业应用
编程语言技术7773人阅读
【Hibernate】(13)
控制台信息如下: 14:08:21 org.apache.posableRequestProcessor init
信息: Initializing composable request processor for module prefix ''
14:08:21 org.apache.mands.servlet.CreateAction createAction
信息: Initialize action of type: org.springframework.web.struts.DelegatingActionProxy
14:08:22 org.hibernate.type.NullableType nullSafeGet
信息: could not read column value from result set: PTID; 列名无效
14:08:22 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 17006, SQLState: null
14:08:22 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: 列名无效
org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2147)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
at org.hibernate.loader.Loader.list(Loader.java:2023)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:150)
at adam.bp.workflow.dao.StartWorkFlowDao.getCfgPttypeObj(StartWorkFlowDao.java:121)
at adam.bp.workflow.dao.StartWorkFlowDao$FastClassByCGLIB$2caed01b.invoke(&generated&)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at adam.bp.workflow.dao.StartWorkFlowDao$EnhancerByCGLIB$319d20c7.getCfgPttypeObj(&generated&)
at adam.bp.workflow.biz.StartWorkFlowBiz.getCfgPttypeObj(StartWorkFlowBiz.java:98)
at adam.bp.workflow.action.StartWorkFlowAction.queryRtuInfo(StartWorkFlowAction.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:166)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.mands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.mands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.mands.ActionCommandBase.execute(ActionCommandBase.java:51)
at mons.chain.impl.ChainBase.execute(ChainBase.java:191)
at mons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
at mons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.posableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.adam.dev.utils.EncoderFilter.doFilter(EncoderFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: 列名无效
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleStatement.get_column_index(OracleStatement.java:5971)
at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1527)
at oracle.jdbc.driver.OracleResultSet.getLong(OracleResultSet.java:1540)
at mons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:239)
at org.hibernate.type.LongType.get(LongType.java:28)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:113)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:102)
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1088)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:553)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2144)
... 65 more
错误原因分析:
& & & &--&信息: could not read column value from result set: PTID; 列名无效
说明查询出来的结果集中不包含ptid的值。
原来的代码:
String sql = &select disc from CSM_MID.CFG_PTTYPE where ptid='&+ptId+&'&;
List list = this.getSession().createSQLQuery(sql).addEntity(CfgPttype.class).list();
& & & & CfgPttype cfgPttypeObj = (CfgPttype)list.get(0);
修改后正确的代码:
String sql = &select * from CSM_MID.CFG_PTTYPE where ptid='&+ptId+&'&;
List list = this.getSession().createSQLQuery(sql).addEntity(CfgPttype.class).list();
& & & & CfgPttype cfgPttypeObj = (CfgPttype)list.get(0);
这样便运行正常了!
由以上写法可以看出,我们需要在查询的结果集中包含查询条件ptid的值。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:671748次
积分:8033
积分:8033
排名:第1410名
原创:190篇
转载:49篇
评论:109条
(1)(7)(1)(2)(2)(1)(1)(3)(1)(3)(7)(1)(10)(6)(4)(2)(5)(6)(18)(1)(1)(8)(7)(5)(6)(1)(2)(7)(12)(19)(24)(1)(9)(5)(18)(1)(31)您现在的位置:&&>>&&>>&&>>&&>>&正文
hibernate存储过程返回结果集列名无效
  &?xml version="1.0" encoding="utf-8"?&
  &!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  Mapping file autogenerated by MyEclipse Persistence Tools
  &hibernate-mapping&
  &class name="net.yjiasoft.sss.query.QueryAllBillFinish" table="temp" mutable="false"&
  &id name="id" type="java.lang.Integer"&
  &column name="id"&&/column&
  &generator class="identity"&&/generator&
  &many-to-one name="billMasterAll" class="net.yjiasoft.sss.table.BillMasterAll" lazy="false" fetch="join"
  column="billId"
  not-null="true"
  unique="true"/&
  &property name="vchSumTo" type="java.lang.Double"/&
  &property name="gatherSumTo" type="java.lang.Double"/&
  &property name="balanceSumTo" type="java.lang.Double"/&
  &property name="ignoreSumTo" type="java.lang.Double"/&
  &property name="isFinished" type="java.lang.Integer"/&
  &property name="subCount" type="java.lang.Integer"/&
  &/class&
  &sql-query name="P_QueryAllBillFinish" callable="true"&
  &return alias="queryAllBillFinish" class="net.yjiasoft.sss.query.QueryAllBillFinish"&
  &return-property name="id" column="sid"&&/return-property&
  &return-property name="billMasterAll" column="billId"&&/return-property&
  &return-property name="vchSumTo" column="vchSumTo"&&/return-property&
  &return-property name="gatherSumTo" column="gatherSumTo"&&/return-property&
  &return-property name="balanceSumTo" column="balanceSumTo"&&/return-property&
  &return-property name="ignoreSumTo" column="ignoreSumTo"&&/return-property&
  &return-property name="isFinished" column="isFinished"&&/return-property&
  &return-property name="subCount" column="subCount"&&/return-property&
  &/return&
  {call YP_QueryAllBillFinish(?,?,?,?,?)}
  &/sql-query&
  &/hibernate-mapping&
  &return-property name="id" column="sid"&&/return-property&去掉,然后把标识中的两个name属性都改为billId,就会提示billId列无效,不知为什么。不知道是不是标识列和外键(many-to-one)使用的是同一列的原因。后来我在过程返回的结果集中增加了sid列,这个值和billId列是同一个值。
【责编:coco】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 认证培训
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 社区讨论
 博客论点
 频道精选
 Java 频道导航1884人阅读
hibernate(13)
这是我原来的sql:
String sql=&select s.* from(select t.*,rownum n from (select id,msg_Title,msg_Sdate from Sys_Msg where status=? and msg_sdate&sysdate and msg_edate&sysdate order by sort_Num,msg_Sdate desc) t) s where s.n in (:num)&;
在sqlplus下能争取执行,但是
Query query=this.getSession().createSQLQuery(sql).addEntity(SysMsg.class);
query.setParameter(0, Status.SURE.value());
query.setParameterList(&num&, nums); query.list();
报SQL Error: 17006, SQLState: null& 列名无效错误。
后修改sql为:
select s.* from(select t.*,rownum n from (select * from Sys_Msg where status=? and msg_sdate&sysdate and msg_edate&sysdate order by sort_Num,msg_Sdate desc) t) s where s.n in (:num)
把最里层的sql中指定的字段,改为“*”,问题得以解决。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:211760次
积分:2855
积分:2855
排名:第7538名
原创:62篇
转载:78篇
评论:35条
(2)(1)(1)(1)(1)(4)(2)(5)(1)(4)(2)(2)(5)(9)(8)(8)(4)(6)(6)(4)(4)(6)(11)(9)(1)(1)(3)(8)(9)(6)(7)

我要回帖

更多关于 sql 列名无效 的文章

 

随机推荐