hibernate将java Long映射到MySQL BIGINT错误
我有一个Mysql表名customer,其中 列Acc_no和Cust_ID分别为BigInt(14)和BigInt(10)类型 我想通过Spring MVC Hibernate检查MySQL中的值 Bean类客户hibernate将java Long映射到MySQL BIGINT错误,java,hibernate,spring-mvc,hql,Java,Hibernate,Spring Mvc,Hql,我有一个Mysql表名customer,其中 列Acc_no和Cust_ID分别为BigInt(14)和BigInt(10)类型 我想通过Spring MVC Hibernate检查MySQL中的值 Bean类客户 @Id @GeneratedValue(strategy =GenerationType.AUTO) @Column(name="Cust_ID") long Cust_ID; @Id @GeneratedValue(strategy =GenerationType.AUTO) @
@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”超出数据类型整数的有效范围
在setParameter中进行长时间强制转换我是故意这样做的,但没有帮助。同样的例外。这里是解决方案:
// Convert Long to String.
String custID = Cust_ID.toString();
// Then create the BigInteger
BigInteger bigIntegerCustID = new BigInteger( custID );
query.setParameter(0, bigIntegerCustID);
关于,为什么不使用biginger而不是long?@KillerDeath好的,所以我确实使用了它,但是如果它是一个变量,为什么我必须导入呢?我希望用它检查正常int值不会有问题BigInteger@KillerDeath那么我将如何将字符串解析为BigInteger。。。。。看到我的代码了吗?哪个字符串?我的印象是,您的cust_id和acc_no太大,无法放入标准整数。您收到的错误消息显示,您试图在INTEGER类型的列中存储太大的值,而不是BIGINT(或者在int或INTEGER类型的Java属性中读取BIGINT值)。修复数据库列定义或映射。另外,请遵守Java命名约定,不要将SQL\u QUERY命名为包含HQL查询的变量。感谢您仍然收到错误第10列中的9.87654321E9'超出了数据类型整数的有效范围,但第10列是我的C_New_Pwd,我不明白为什么第10列会显示它。请回复您是否尝试直接从mysql workbench执行查询?