Olá,
está oc orrendo o seguinte erro:
11:16:28,654 INFO [STDOUT] Caused by: java.lang.ClassCastException: java.lang.Integer
11:16:28,654 INFO [STDOUT] at org.hibernate.type.DoubleType.set(DoubleType.java:34)
11:16:28,654 INFO [STDOUT] at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:62)
11:16:28,654 INFO [STDOUT] at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:39)
11:16:28,654 INFO [STDOUT] at org.hibernate.persister.entity.BasicEntityPersister.dehydrate(BasicEntityPersister.java:1617)
11:16:28,654 INFO [STDOUT] at org.hibernate.persister.entity.BasicEntityPersister.update(BasicEntityPersister.java:1963)
11:16:28,654 INFO [STDOUT] at org.hibernate.persister.entity.BasicEntityPersister.updateOrInsert(BasicEntityPersister.java:1909)
11:16:28,654 INFO [STDOUT] at org.hibernate.persister.entity.BasicEntityPersister.update(BasicEntityPersister.java:2149)
11:16:28,654 INFO [STDOUT] at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:75)
11:16:28,654 INFO [STDOUT] at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
11:16:28,654 INFO [STDOUT] at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:223)
11:16:28,654 INFO [STDOUT] at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:137)
11:16:28,654 INFO [STDOUT] at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
11:16:28,654 INFO [STDOUT] at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
11:16:28,654 INFO [STDOUT] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
11:16:28,654 INFO [STDOUT] at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
11:16:28,654 INFO [STDOUT] at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
11:16:28,654 INFO [STDOUT] at br.fapesp.tidia.ae.infra.mail.impl.MailDAO.updateMessagesState(MailDAO.java:319)
11:16:28,654 INFO [STDOUT] ... 73 more
Quando tento executar o seguinte código:
Session session = null;
Transaction tx = null;
try {
SessionFactory factory = ServiceLocator.getInstance().getSessionFactory();
session = factory.openSession();
tx = session.beginTransaction();
Iterator it = messageList.iterator();
while (it.hasNext()) {
MessageModel message = (MessageModel) it.next();
Query query = session
.createQuery("from MessageStatusModel as ms where ms.folder = :id_folder " +
" and ms.user = :id_user and ms.message = :id_message");
query.setLong("id_folder", folder.getId());
query.setLong("id_user", user.getId());
query.setLong("id_message", message.getId());
MessageStatusModel messageStatus = (MessageStatusModel)query.uniqueResult();
// updating message folder
messageStatus.setFolder(targetFolder);
session.update(messageStatus);
}
tx.commit();
} catch (HibernateException e) {
tx.rollback();
throw new SystemException(e);
} catch (Exception e) {
throw new SystemException(e);
} finally {
session.close();
}
com a seguinte classe/mapeamento:
public class MessageStatusModel extends ObjectVO {
public static final int READ = 0;
public static final int UNREAD = 1;
public static final int REPLY = 2;
public static final int FORWARD = 3;
public static final int SENT = 4;
public static final int DELETED = 5;
private int status = -1;
private MessageModel message;
private FolderModel folder;
private UserModel user;
public MessageStatusModel() {
//empty
}
// getters and setters padrões:
//...
}
<hibernate-mapping>
<class
name="br.fapesp.tidia.ae.common.mail.model.MessageStatusModel"
table="message_status"
dynamic-update="false"
dynamic-insert="false" >
<id
name="id"
column="id"
type="long">
<generator class="increment"/>
</id>
<property
name="status"
update="true"
insert="true"
access="property"
column="msg_status"
/>
<many-to-one name="folder" class="br.fapesp.tidia.ae.common.mail.model.FolderModel" column="id_folder" lazy="false"/>
<many-to-one name="message" class="br.fapesp.tidia.ae.common.mail.model.MessageModel" column="id_message" lazy="false" />
<many-to-one name="user" class="br.fapesp.tidia.ae.common.shared.model.UserModel" column="id_user" lazy="false" />
</class>
</hibernate-mapping>
public abstract class ObjectVO implements Serializable {
private long id;
public ObjectVO(long id) {
setId(id);
}
public ObjectVO() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id=id;
}
}
Alguma luz ?