hibernate将java Long映射到MySQL BIGINT错误

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) @

我有一个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)
@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执行查询?