2017-07-16 1 views
0

J'ai un client de nom de la table Mysql oùjava cartographie mise en veille prolongée long d'une erreur MySQL BIGINT

colonne Acc_no et Cust_ID sont de type BigInt (14) et BigInt (10) respectivement

et je veux vérifier valeurs MySQL par Spring MVC Hibernate

classe Bean client

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

Alors que dans CustomerDAOImpl Je l'ai fait

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(); 

Exception:com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '9.87654321E9' dans la colonne '10' est hors de la plage valide pour la INTEGER de type de données.

Coulée longue dans setParameter Je l'ai fait exprès mais pas l'aide même exception.

+0

Pourquoi ne pas utiliser BigInteger au lieu de long? –

+0

@KillerDeath Ok Je l'ai donc utilisé mais pourquoi dois-je importer si c'est une variable J'espère qu'il n'y aura pas de problème pour vérifier la valeur avec int normal avec ce BigInteger –

+0

@KillerDeath Et comment puis-je analyser la chaîne à BigInteger alors .. ... voir mon code –

Répondre

0

Voici la solution:

// Convert Long to String. 
String custID = Cust_ID.toString(); 

// Then create the BigInteger 
BigInteger bigIntegerCustID = new BigInteger(custID); 

query.setParameter(0, bigIntegerCustID); 

Cordialement,

+0

Merci encore d'avoir l'erreur ...... '9.87654321E9' dans la colonne '10' est en dehors de la plage valide pour le type de données INTEGER mais la colonne 10 est mon C_New_Pwd Je ne comprends pas pourquoi il montre pour colonne 10 répondez –

+0

avez-vous essayé d'exécuter votre requête directement depuis mysql workbench? –

+0

oui j'ai déjà entré des données dans mysql db –