【发布时间】:2017-07-16 06:18:21
【问题描述】:
我有一个 Mysql 表名客户在哪里
Acc_no 和 Cust_ID 列的类型分别为 BigInt(14) 和 BigInt(10)
我想通过 Spring MVC Hibernate 检查 MySQL 中的值
豆类客户
@Id
@GeneratedValue(strategy =GenerationType.AUTO)
@Column(name="Cust_ID")
long Cust_ID;
@Id
@GeneratedValue(strategy =GenerationType.AUTO)
@Column(name="Acc_No")
long Acc_No;
@Column(name="C_New_Pwd")
String C_New_Pwd;
在 CustomerDAOImpl 中我这样做了
long custid=Long.parseLong(clog);
long acc_no=Long.parseLong(accno);
Session session = sessionFactory.openSession();
String SQL_QUERY =" from com.mla.Customer as o where o.Cust_ID=? and o.Acc_No=? and o.C_New_Pwd=?";
Query query = session.createQuery(SQL_QUERY);
query.setParameter(0,(Long)custid);
query.setParameter(1, (Long)acc_no);
query.setParameter(2, pwd);
List list = query.list();
异常: com.mysql.jdbc.exceptions.jdbc4.MySQLDataException:“10”列中的“9.87654321E9”超出数据类型 INTEGER 的有效范围。
在 setParameter 中进行长转换我是故意这样做的,但没有帮助同样的异常。
【问题讨论】:
-
为什么不使用 BigInteger 而不是 long?
-
@KillerDeath 好的,所以我确实使用了这个,但是如果它是一个变量,为什么我必须导入我希望用这个 BigInteger 用普通 int 检查值不会有问题
-
@KillerDeath 然后我将如何将字符串解析为 BigInteger ..... 查看我的代码
-
哪个字符串?我的印象是您的 cust_id 和 acc_no 太大而无法放入标准整数
-
您收到的错误消息表明您试图在 INTEGER 类型的列中存储太大的值,而不是 BIGINT(或读取 int 或 Integer 类型的 Java 属性中的 BIGINT 值。修复您的数据库列定义或映射。此外,请尊重 Java 命名约定,不要将 SQL_QUERY 命名为包含 HQL 查询的变量。
标签: java hibernate spring-mvc hql