我数据库是String类型,Hibernate映射文件也是String类型,然后我查找那张表的数据的时候报错
查找代码
public Price searchNewPrices(String upc){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction transaction = session.beginTransaction();
Price prices = new Price();
prices = (Price) session.createQuery("from com.sungale.wpt.data.Price where upc=:upc and ts = (select max(ts) from com.sungale.wpt.data.Price where upc=:upc)").setString("upc", upc).uniqueResult();
transaction.commit();
return prices;
}
测试代码
public static void main(String[] args){
ItemDao iDao = new ItemDao();
Price price = new Price();
price = iDao.searchNewPrices("123456110110");
System.out.print(price.getUpc());
}
报错信息:
Exception in thread "main" org.hibernate.exception.DataException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:100)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2235)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)
at com.sungale.wpt.dao.ItemDao.searchNewPrices(ItemDao.java:88)
at com.sungale.wpt.dao.ItemDao.main(ItemDao.java:98)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '1.2345611011E11' in column '4' is outside valid range for the datatype INTEGER.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:999)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.throwRangeException(ResultSetImpl.java:7872)
at com.mysql.jdbc.ResultSetImpl.parseIntAsDouble(ResultSetImpl.java:7114)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2666)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2777)
at org.hibernate.type.IntegerType.get(IntegerType.java:51)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:184)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:173)
at org.hibernate.type.ManyToOneType.hydrate(ManyToOneType.java:126)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)
at org.hibernate.loader.Loader.getRow(Loader.java:1230)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)
at org.hibernate.loader.Loader.doQuery(Loader.java:724)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
... 10 more
报错提示是int数据范围超出,但是我数据库和Hibernate的映射文件和pojo类都是String类型的,怎么会有一个int类型呢,狗日的,哪位兄弟知道什么原因,麻烦说说,大恩不言谢,给分.Thanks