2013-01-23 62 views
0
public List<Marki> getMarki() 
     { 
     List<Marki> markiList = null; 
     try { 
      Session session = HibernateSession.getSessionFactory().getCurrentSession(); 
      session.beginTransaction(); 
      Query q = session.createQuery("from Marki "); 
      if (q != null) { 
       markiList = (List<Marki>) q.list(); 
      } 
      // session.getTransaction().commit(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return markiList; 
} 

映射休眠的Postgres不能反序列化

<hibernate-mapping> 
    <class name="bazaMap.Marki" table="marki" schema="public"> 
     <id name="id" type="int"> 
      <column name="id" /> 
      <generator class="assigned" /> 
     </id> 
     <property name="marka" type="serializable"> 
      <column name="marka" unique="true" /> 
     </property> 
     <set name="modeles" inverse="true"> 
      <key> 
       <column name="markaid" not-null="true" /> 
      </key> 
      <one-to-many class="bazaMap.Modele" /> 
     </set> 
    </class> 
</hibernate-mapping> 


N 



CREATE TABLE marki 
(
    id serial NOT NULL, 
    marka character varying(32)[], 
    CONSTRAINT glowny PRIMARY KEY (id), 
    CONSTRAINT marki_marka_key UNIQUE (marka) 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE marki 
    OWNER TO postgres; 

FO:休眠:選擇marki0_.id如id3_,marki0_.marka如marka3_ 從public.marki marki0_ INFO:無法讀取列結果集中的值:marka3_;不能反序列化 重度:org.hibernate.type.SerializationException:在org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:217) 在org.hibernate.util.SerializationHelper.deserialize不能反序列化 (SerializationHelper.java :240) at org.hibernate.type.SerializableType.fromBytes(SerializableType.java:82) at org.hibernate.type.SerializableType.get(SerializableType.java:39) at org.hibernate.type.NullableType.nullSafeGet (NullableType.java:163) at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154) at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81) at org.hibernate.persister .entity.AbstractEntityPersister.hydrate在org.hibernate.loader(AbstractEntityPersister.java:2096) 在org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380) 在org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308) .Loader.getRow(Loader.java:1206) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580) at org.hibernate.loader.Loader.doQuery(Loader.java:701) at org .hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) 在org.hibernate.loader.Loader.doList(Loader.java:2220) 在org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104 ) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.hql .classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:912) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121 ) 在org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 在DataFetcher.getMarki(DataFetcher.java:40)

1,所有的映象代碼是由生成的NetBeans。任何想法可能是錯誤的甚至更好 - 如何解決它?

blah 「您的帖子沒有太多的上下文來解釋代碼段,請更清楚地解釋您的場景。」

+0

stackoverflow很聰明。你真的應該「像解釋說的那樣更清楚地解釋你的情況」。您應該添加更多有關問題的信息,如確切的錯誤消息或堆棧跟蹤。 – digitaljoel

+0

我確實添加了錯誤信息 – user1997553

回答

1

我敢打賭,這是你的問題:

marka character varying(32)[], 

你可能不希望字符的陣列。這可能是你想要什麼:

marka varchar(32), 

上次我檢查Hibernate不知道如何處理與Postgres的陣列開箱即用的,因爲很少的RDBMS支持他們。

+0

如何在Postgres中定義varchar(32)? – user1997553

+0

'varchar(32)'是'字符變化(32)'的縮寫,並且兩者都會「正常工作」。 –