当前位置: 首页 > 知识库问答 >
问题:

Hibernate Postgres无法反序列化

诸葛雨泽
2023-03-14
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;
 }

映射

<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:Hibernate:选择marki0_. id作为id3_,marki0_. mark作为marka3_从public.markimarki0_INFO:无法从结果集读取列值:marka3_;无法反序列化SEVERE:org.hibernate.type.序列化异常:无法反序列化org.hibernate.util.串行化Helper.deserialize(串行化Helper.java:217)在org.hibernate.util.串行化Helper.deserialize(串行化Helper.java:240)在org.hibernate.type.串行化ype.from字节(串行化ype.java:82)在org.hibernate.type.序列化ype.get(序列化ype.java:39)org.hibernate.type.NullableType.null安全获取(NullableType.java:163)org.hibernate.type.NullableType.null安全获取(NullableType.java:154)org. hibernate. type。水合物(AbstractType. java: 81)在org. hibernate.坚持者. entity。在org. hibernate. loader上的AbstractEntityPersiers. hyate(AbstractEntityPersiers. java: 2096)。Loader. loadFromResultSet(Loader. java: 1380)在org. hibernate. loader。在org. hibernate. loader上加载(Loader. java: 1308)。在org. hibernate. loader. getRow(Loader. java: 1206)。在org. hibernate. loader. getRowFromResultSet(Loader. java: 580)。Loader. doQuery(Loader. java: 701)at org. hibernate. loader。在org. hibernate. loader上的Loader. doQueryAndIdazeNonLazyCollection(Loader. java: 236)。Loader. doList(Loader. java: 2220)在org. hibernate. loader。在org. hibernate. loader. listIgnoreQueryCache(Loader. java: 2104)。Loader. list(Loader. java: 2099)在org. hibernate. hql.经典。QueryTranslatorInp. list(QueryTranslatorInp. java: 912)at org. hibernate. gine. query.HQLQueryProject. performList(HQLQueryProject. java: 172)at org. hibernate. implified.SessionImp. list(SessionInp. java: 1121)在org. hibernate. implified。QueryInp. list(QueryInp. java: 79)at DataFetcher. getMarki(DataFetcher. java: 40)

1.所有映射代码都是由NetBeans生成的。有什么想法可能是错误的或更好的-如何修复它?

你的帖子没有太多的上下文来解释代码部分;请更清楚地解释你的场景。”

共有1个答案

宗意蕴
2023-03-14

我打赌这是你的问题:

marka character varying(32)[],

您可能不需要字符数组。这可能就是你想要的:

marka varchar(32),

上一次我检查Hibernate不知道如何处理现成的Postgres数组,因为很少有RDBMS支持它们。

 类似资料:
  • 问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是

  • 问题内容: 作为一个小项目,我一直在尝试做一个小事,它可以读取序列化的lambda(从本地或从FTP)并调用它们的运行函数作为测试的一部分,以测试Windows中的文件关联(即打开某些文件类型)使用特定程序打开它们),但不管如何,无论如何,它似乎从未正确地反序列化。 lambda被这样声明 并使用由ObjectOutputStream包装的[n可选] BufferedOutputStream包装的

  • 问题内容: 在hibernate状态下执行条件查询时,出现以下异常: 可能是什么问题呢? PS:虽然可能不相关,但我的hibernate版本是hibernate-4.0.1 final。 问题答案: 问题在于被引用的实体对实体有另一个引用,并且该关系未由任何-like注释进行注释。

  • 问题内容: 我正在使用Hibernate的两个表,但我不明白为什么对于特定查询我有此问题。我希望有人意识到这个问题。 我有一个桌子用户 和一个桌子区域 日志说: 问题答案: 我建议仅在字段或getter上设置注释。我更喜欢田野,但那只是我的口味。 请参阅Hibernate中有关字段和属性访问的奇怪案例: 因此,要么将注释仅放置在字段上,要么仅放置在getters(properties)上。混合它们

  • 作为一个小项目,我一直在尝试制作一个小东西来读取序列化的lambda(本地或从FTP)并调用它们的run函数,作为测试的一部分,以在Windows中试验文件关联(即打开某些文件类型会用某个程序打开它们)等等,但无论我尝试什么,它似乎都无法正确地反序列化。 lambda是这样宣布的 并使用由ObjectOutputStream包装的[n可选]BufferedOutputStream包装的FileOu

  • 我想创建mysql字符串数组类型的数据字段。因此,我在我的spring-boot gradle项目中创建模型类,如下所示。 这是我的存储库,它通过JpaRepository扩展 但是当我在controller类中运行'getQuestions()'函数时,它给出了以下错误。 嵌套异常为org.hibernate.type.serializationexception:无法反序列化org.sprin