问题描述
在新增数据时发生这个问题,求指导。先谢过了!Struts has detected an unhandled exception:Messages: this id generator generates long, integer, short this id generator generates long, integer, short; nested exception is org.hibernate.id.IdentifierGenerationException: this id generator generates long, integer, shortFile: org/hibernate/id/IdentifierGeneratorFactory.javaLine number: 167
解决方案
如果你使用的是注解那就找你的想要插入数据的类,对ID的注解为:@GeneratedValue(strategy=GenerationType.AUTO)private Long pid;如果你使用的时配置文件形式<id name="pid" type="java.lang.Long"> <column name="PID" precision="10" scale="0" /> <generator class="sequence" > <param name="sequence">Function_SEQUENCE</param> </generator></id>
解决方案二:
hibernate 的主键生成策略不对http://www.cnblogs.com/flyoung2008/articles/2165759.html
解决方案三:
http://zhidao.baidu.com/link?url=dc4AGp8AdhLIUTrTQsJ05toS7bCDcxpH_NcaeWj80zSN85vEs8UXQhS6ykdXZSq7S2CSmAvjpctlwXic_0_jcq
解决方案四:
意思是这个id 增长器只支持long,integer,short. 你试试用这几个类型的 就比如你写了个方法 public int getAA(){}int a=(实例).getAA();当你用String b=(实例).getAA();会报错类似
解决方案五:
你设置产生的id错误,应该是你配置hibernate的产生主键,比如:<generator class="com.mypackage.BigDecimalGenerator"> <param name="sequence">MYTEMP_TEMP_ID_SEQ</param></generator>