Hi,
I could use some help with this mapping, It used to work just fine before I upgraded. I can't figure out why it can't read the column since if I run it by myself in psql it works just fine ( formula0_3_= 1).
I'd appreciate any help since I'll soon be bald from pulling my hair out.
regards
/Magnus Sjöstrand
The objects in question are:
Code:
@Entity ( access = AccessType.FIELD )
@SequenceGenerator (
name = "SEQ_STORE",
sequenceName="label_id_seq"
)
public class Label implements Serializable, BaseBO {
@Id ( generate = GeneratorType.SEQUENCE, generator="SEQ_STORE" )
private int id;
private String name;
@OneToMany ( mappedBy="label" )
@MapKey ( name="language")
private Map<Language,LabelValue> values;
}
@Entity ( access = AccessType.FIELD )
public class LabelValue implements Serializable, BaseBO {
@Id
private int id;
@ManyToOne
@JoinColumn ( name="labelid" )
Label label;
@ManyToOne
@JoinColumn ( name="languageId" )
private Language language;
private String value;
}
public class Language implements BaseBO, Labelable, Serializable {
@Id ( generate = GeneratorType.SEQUENCE, generator="SEQ_STORE" )
private int id;
@ManyToOne
@JoinColumn ( name="labelId" )
private Label label;
@Column ( unique = true )
private String iso;
}
Hibernate version: 3.1, annotations 3.1b7
Full stack trace of any exception that occurs:org.hibernate.type.SerializationException: could not deserialize
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:211)
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:234)
at org.hibernate.type.SerializableType.fromBytes(SerializableType.java:78)
at org.hibernate.type.SerializableType.get(SerializableType.java:39)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:113)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:102)
at org.hibernate.persister.collection.AbstractCollectionPersister.readIndex(AbstractCollectionPersister.java:650)
at org.hibernate.collection.PersistentMap.readFrom(PersistentMap.java:222)
at org.hibernate.loader.Loader.readCollectionElement(Loader.java:994)
at org.hibernate.loader.Loader.readCollectionElements(Loader.java:635)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1919)
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:71)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:520)
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1627)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
at org.hibernate.collection.AbstractPersistentCollection.readElementByIndex(AbstractPersistentCollection.java:161)
at org.hibernate.collection.PersistentMap.get(PersistentMap.java:127)
at com.snusk.data.Label.getValue(Label.java:48)
at com.snusk.BaseAction.sortByLabel(BaseAction.java:116)
at com.snusk.PersonalSettingsAction.view(PersonalSettingsAction.java:65)
at com.snusk.PersonalSettingsAction.unspecified(PersonalSettingsAction.java:206)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:256)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.snusk.EncodingFilter.doFilter(EncodingFilter.java:20)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.snusk.HibernateFilter.doFilter(HibernateFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2232)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2698)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:750)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:268)
at org.hibernate.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:246)
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:203)
... 57 more
Name and version of the database you are using:Postgresql 8.1
The generated SQL (show_sql=true):select values0_.labelid as labelid3_, values0_.id as id3_, values0_.languageId as formula0_3_, values0_.id as id9_2_, values0_.labelid as labelid9_2_, values0_.languageId as languageId9_2_, values0_.value as value9_2_, language1_.id as id10_0_, language1_.labelId as labelId10_0_, language1_.iso as iso10_0_, label2_.id as id8_1_, label2_.name as name8_1_ from LabelValue values0_ left outer join Language language1_ on values0_.languageId=language1_.id left outer join Label label2_ on language1_.labelId=label2_.id where values0_.labelid=?
Debug level Hibernate log excerpt:17:05:06,043 DEBUG StatefulPersistenceContext:820 - initializing non-lazy collections
17:05:06,044 DEBUG DefaultInitializeCollectionEventListener:41 - initializing collection [com.snusk.data.Label.values#35]
17:05:06,045 DEBUG DefaultInitializeCollectionEventListener:47 - checking second-level cache
17:05:06,045 DEBUG DefaultInitializeCollectionEventListener:59 - collection not cached
17:05:06,045 DEBUG Loader:1911 - loading collection: [com.snusk.data.Label.values#35]
17:05:06,046 DEBUG AbstractBatcher:311 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
17:05:06,046 DEBUG SQL:346 - select values0_.labelid as labelid3_, values0_.id as id3_, values0_.languageId as formula0_3_, values0_.id as id9_2_, values0_.labelid as labelid9_2_, values0_.languageId as languageId9_2_, values0_.value as value9_2_, language1_.id as id10_0_, language1_.labelId as labelId10_0_, language1_.iso as iso10_0_, label2_.id as id8_1_, label2_.name as name8_1_ from LabelValue values0_ left outer join Language language1_ on values0_.languageId=language1_.id left outer join Label label2_ on language1_.labelId=label2_.id where values0_.labelid=?
17:05:06,047 DEBUG AbstractBatcher:424 - preparing statement
17:05:06,052 DEBUG AbstractBatcher:327 - about to open ResultSet (open ResultSets: 0, globally: 0)
17:05:06,053 DEBUG Loader:1040 - result set contains (possibly empty) collection: [com.snusk.data.Label.values#35]
17:05:06,056 DEBUG CollectionLoadContext:84 - uninitialized collection: initializing
17:05:06,057 DEBUG Loader:682 - processing result set
17:05:06,057 DEBUG Loader:687 - result set row: 0
17:05:06,058 DEBUG Loader:1164 - result row: EntityKey[com.snusk.data.Language#1], EntityKey[com.snusk.data.Label#1], EntityKey[com.snusk.data.LabelValue#35]
17:05:06,059 DEBUG Loader:1347 - Initializing object from ResultSet: [com.snusk.data.Language#1]
17:05:06,059 DEBUG AbstractEntityPersister:1860 - Hydrating entity: [com.snusk.data.Language#1]
17:05:06,060 DEBUG Loader:1347 - Initializing object from ResultSet: [com.snusk.data.Label#1]
17:05:06,077 DEBUG AbstractEntityPersister:1860 - Hydrating entity: [com.snusk.data.Label#1]
17:05:06,077 DEBUG Loader:1347 - Initializing object from ResultSet: [com.snusk.data.LabelValue#35]
17:05:06,078 DEBUG AbstractEntityPersister:1860 - Hydrating entity: [com.snusk.data.LabelValue#35]
17:05:06,079 DEBUG Loader:972 - found row of collection: [com.snusk.data.Label.values#35]
17:05:06,079 DEBUG CollectionLoadContext:112 - reading row
17:05:06,079 DEBUG DefaultLoadEventListener:153 - loading entity: [com.snusk.data.LabelValue#35]
17:05:06,080 DEBUG DefaultLoadEventListener:304 - attempting to resolve: [com.snusk.data.LabelValue#35]
17:05:06,081 DEBUG DefaultLoadEventListener:313 - resolved object in session cache: [com.snusk.data.LabelValue#35]
17:05:06,081 DEBUG SerializationHelper:198 - Starting deserialization of object
17:05:06,087 INFO SerializableType:132 - could not read column value from result set: formula0_3_
17:05:06,088 DEBUG AbstractBatcher:334 - about to close ResultSet (open ResultSets: 1, globally: 1)
17:05:06,089 DEBUG AbstractBatcher:319 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
17:05:06,089 DEBUG AbstractBatcher:470 - closing statement
17:05:06,090 WARN RequestProcessor:516 - Unhandled Exception thrown: class org.hibernate.type.SerializationException[/code]
Code: