2015-09-05 4 views
1

Я пытаюсь написать простой код для спящего режима. Я использую SQL Server 2012 как базу данных. Я встречая следующее сообщение об ошибке при запуске приложения:Hiibernate: java.lang.ClassCastException: java.lang.String не может быть добавлено в java.lang.Integer

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 
at org.hibernate.type.descriptor.java.IntegerTypeDescriptor.unwrap(IntegerTypeDescriptor.java:36) 
at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$1.doBind(IntegerTypeDescriptor.java:64) 
at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:90) 
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:282) 
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:277) 
at org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeSet(AbstractSingleColumnStandardBasicType.java:56) 
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2843) 
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3121) 
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3587) 
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:103) 
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:453) 
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:345) 
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:350) 
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:56) 
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1218) 
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:421) 
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) 
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:177) 
at com.samples.test.HibernateUtil.main(HibernateUtil.java:28) 

5 сентября, 2015 7:40:59 PM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl релиз INFO: HHH000010: О выпуске партия все еще содержали JDBC заявления

Это мой сотрудник объект класса

package com.samples.hibernate; 

public class Employee { 

    private int ID; 
    private String name; 

    public int getID() { 
     return ID; 
    } 
    public void setID(int iD) { 
     ID = iD; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 

} 

Вот мой код, где я общаюсь с базой данных.

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Configuration configuration = new Configuration().configure(); 
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); 
    SessionFactory factory = configuration.buildSessionFactory(builder.build()); 
    Session session = null; 
    try 
    { 
     session = factory.openSession(); 
     Employee employee = new Employee(); 
     employee.setID(3); 
     employee.setName("Venkatesh"); 

     session.beginTransaction(); 
     session.save(employee); 
     session.getTransaction().commit(); 


    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    finally 
    { 
     session.close(); 
    } 
} 

Класс Employee имеет идентификатор как целое и имя как String. Пожалуйста, помогите мне с этим. Я новичок в спячке и стараюсь учиться. Заранее спасибо.

+1

Можете ли вы опубликовать свой класс сущностей «Сотрудник»? – dazito

+0

@ dazito Я теперь включил класс Employee. Спасибо – Venky

+1

Поскольку вы использовали XML-конфигурации, можете ли вы добавить это тоже? Я предполагаю, что ваша БД первоначально имела значения String в имени переменной. Попробуйте добавить свойство hbm2ddl в «Create» -> «<свойство name =" hbm2ddl.auto "> create-drop" и обновите таблицу, чтобы узнать, сохраняется ли проблема. – OneRaynyDay

ответ

0

Решено. Я воссоздал файл .hbm.xml. Может быть, он принимал int как тип данных для имени.