Почему этот класс должен реализовывать java.io.Serializable, когда я использую спящий режим?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот класс должен реализовывать java.io.Serializable, когда я использую спящий режим?

Сообщение Anonymous »

Это исключение возникло только при использовании класса Tweet. Я не могу найти причину, по которой мне следует использовать Serializable. Я сам выполнил сопоставление в GeneticMessage.hbm.xml. Все типы (long и Date) в Tweet Class являются базовыми типами в Hibernate (я так думаю).

На самом деле проблему можно решить, просто реализовав Serializable для Tweet, как указано в Исключении. Но я все равно хочу знать причину.

Метод

Домен домен = (Домен) Objects[0];
Query q = session.createQuery("FROM PreprocessedMessage WHERE domain =?");
q.setEntity(0, domain);
return q.list(); // эта строка


Исключение:

java.lang.ClassCastException: idv.petrie. Prtm.model.Tweet не может быть преобразован в java.io.Serializable
org.hibernate.type.CollectionType.getKeyOfOwner(CollectionType.java:381)
org.hibernate.type.CollectionType.resolve(CollectionType. java:425)
org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139)
org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982)
org. hibernate.loader.Loader.doQuery(Loader.java:857)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
org.hibernate.loader.Loader.doList(Loader. java:2533)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
org.hibernate.loader.Loader.list(Loader.java:2271)
org. hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
org.hibernate.engine.query. HQLQueryPlan.performList(HQLQueryPlan.java:196)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
idv.petrie.prtm.model.helper.PreprocessedMessageHelper$3.execute(PreprocessedMessageHelper.java:66)
idv.petrie.prtm.util.ModelHelper.execute(ModelHelper.java:36)
idv.petrie.prtm.model.helper.PreprocessedMessageHelper.findMessageByDomain(PreprocessedMessageHelper.java:69)
idv.petrie.prtm.servlet.MessageEvaluationServlet.doGet(MessageEvaluationServlet.java:44)
javax.servlet .http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

PreprocessedMessage. java

пакет idv.petrie.prtm.model;

импортировать java.util.Collection;
импортировать java.util.HashSet ;
import java.util.Set;

открытый класс PreprocessedMessage расширяет GeneticMessage {

частное сообщение GeneticMessage;

частное Установить зависимости;

частные токены набора;

public PreprocessedMessage() {
super();

public PreprocessedMessage(GeneticMessage message, String content) {
this();
this.setMessage(message);
this.setContent(content);
this.setDomain(message.getDomain()) ;

public PreprocessedMessage(GeneticMessage message) {
this(message, message.getContent());

public PreprocessedMessage(сообщение GeneticMessage,
Установить зависимости) {
this(message);
this.dependents = зависимости;

public static Collection ConvertToCollection(
Сообщения коллекции) {
Результат коллекции = new HashSet();
for (Сообщение GeneticMessage: сообщения) {
result.add(new PreprocessedMessage(message));
вернуть результат;


public void setMessage(GeneticMessage message) {
this.message = message;

public GeneticMessage getMessage() {
возвращаемое сообщение;

public Set getDependities() {
возвращаемые зависимости;

public void setDependities(Set dependency) {
for (Dependency d : Dependency) {
d.setMessage(this);
this .dependents = зависимости;
}

public Collection getTokens() {
возвращаем токены;

public void setTokens(Set tokens(Set tokens) ) {
for (Token t : токены) {
t.setMessage(this);
this.tokens = токены;




Tweet.java

пакет idv.petrie. prtm.model;

import java.util.Date;

публичный класс Tweet расширяет GeneticMessage {

частный длинный твиттер;
частная дата создания;

частная long fromUserId;

public Tweet() {
super();
public Tweet(String content) {
this();
setContent(content);

public Date getCreatedAt() {
return созданныйAt;

public void setCreatedAt(Date createAt) {
this.createdAt = созданныйAt;

public long getFromUserId () {
return fromUserId;
}

public void setFromUserId(long fromUserId) {
this.fromUserId = fromUserId;

public void setTweetId(longtwitterId) {
this.tweetId =twitterId;

public long getTweetId() {
returntwitterId;




GeneticMessage.java

пакет idv.petrie.prtm.model;

import java.util.Date;

публичный класс GeneticMessage реализует Comparable {
public enum Status {
НОВЫЙ (0), PREPROCESSED (1);
частный int id;

частный Status (int id) {
this. id = id;

public int getId() {
return id;

Private long id;

частное Дата изменения;

частное строковое содержимое;

частное состояние статуса;

частный домен домена;

public GeneticMessage() {
setModifiedAt();
setStatus(Status.NEW);

public long getId() {
возвращаемый идентификатор;
}

public void setId(long id) {
this.id = id;
}

public String getContent() {
возвращает содержимое;

public void setContent(String content) {
this.content = content;

public void setModifiedAt() {
this.modifiedAt = new Date();

public Date getModifiedAt() {
returnmodifiedAt;

public void setStatus(Status status) {
this.status = status;

public Status getStatus() {
возвращает статус;

public void setDomain(Домен домена) {
this.domain = домен;

public Domain getDomain() {
возвращает домен;

public int CompareTo(GeneticMessage o) {
String content = this.getContent( );
String anotherContent = o.getContent();
return content.compareTo(anotherContent);

public void setModifiedAt(Date ModifiedAt) {
/> this.modifiedAt = модифицированныйAt;
}


GeneticMessage.hbm.xml

Код: Выделить всё







idv.petrie.prtm.model.GeneticMessage.Status
getId


































Подробнее здесь: https://stackoverflow.com/questions/491 ... -hibernate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»