Apache Cayenne:java.io.StreamCorruptedException
Posted
技术标签:
【中文标题】Apache Cayenne:java.io.StreamCorruptedException【英文标题】:Apache Cayenne: java.io.StreamCorruptedException 【发布时间】:2020-10-31 13:15:36 【问题描述】:我正在尝试进行简单的选择查询,但收到此错误:
java.io.StreamCorruptedException: invalid stream header: 78780A1F
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:857)
在数据映射中,我有一个 CLOB 类型的 db 属性,我想将其读取为简单的字符串。
<db-entity name="DISC">
<db-attribute name="DATE" type="TIMESTAMP" isMandatory="true" length="7"/>
<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
<db-attribute name="FLAG" type="VARCHAR" isMandatory="true"/>
<db-attribute name="REQUEST" type="CLOB" isMandatory="false"/>
<db-key-generator>
<db-generator-type>ORACLE</db-generator-type>
<db-generator-name>DISC_SEQ</db-generator-name>
<db-key-cache-size>1</db-key-cache-size>
</db-key-generator>
</db-entity>
<obj-entity name="Disc" className="it.pack.dao.Disc" dbEntityName="DISC">
<obj-attribute name="date" type="java.time.LocalDateTime" db-attribute-path="DATE"/>
<obj-attribute name="id" type="java.lang.Integer" db-attribute-path="ID"/>
<obj-attribute name="flag" type="java.lang.String" db-attribute-path="FLAG"/>
<obj-attribute name="request" type="java.lang.String" db-attribute-path="REQUEST"/>
</obj-entity>
【问题讨论】:
【参考方案1】:对于'CLOB'类型,数据类型不能是字符串使用:
<obj-attribute name="request" type="java.sql.Clob" db-attribute-path="REQUEST"/>
【讨论】:
好的,但是我需要更改 cayenne 生成的 dao 的 read/writeProperty 对吧?以上是关于Apache Cayenne:java.io.StreamCorruptedException的主要内容,如果未能解决你的问题,请参考以下文章
Apache Cayenne:java.io.StreamCorruptedException