我已经看到了一些关于这个问题的问题,但我的案例没有任何有效的解决方案
我对jason序列化有异常我有以下类
当我执行GET Pacientes时,我有序列化权限类型
的例外r -324
我正在使用框架Spring启动弹簧数据jpa
班级Paciente
2017-11-14 08:54:35.039 INFO 8724 --- [nio-8080-exec-1] o.h.e.internal.DefaultLoadEventListener : HHH000327: Error performing load command : org.hibernate.type.SerializationException: could not deserialize
2017-11-14 08:54:35.047 ERROR 8724 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize] with root cause
java.io.EOFException: null
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) ~[na:1.8.0_144]
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source) ~[na:1.8.0_144]
at java.io.ObjectInputStream.readStreamHeader(Unknown Source) ~[na:1.8.0_144]
at java.io.ObjectInputStream.<init>(Unknown Source) ~[na:1.8.0_144]
at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:309) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:299) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:218) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
答案 0 :(得分:1)
您似乎正在尝试反序列化空流。
答案 1 :(得分:0)
您不能简单地通过REST接口传输数据库实体,您必须创建DTO并传输它们而不是实体。
答案 2 :(得分:0)
对我来说,原因是在关联上使用@Column
而不是@JoinColumn
。通过打开正在运行的查询的日志记录可以找到答案:
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.springframework.transaction=DEBUG
logging.level.org.hibernate=DEBUG
logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type.descriptor.sql=trace
tbh,不确定实际上需要哪些属性,但是我在其他一些SO问题上找到了它们,并在调试时将它们全部打开。在日志中,我看到每个获取的列都有一行,而在获取异常之前记录的最后一行是关联的列值,其中注释有错误。