2013-01-23 59 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)'的缩写,并且两者都会“正常工作”。 –