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