magro / kryo-serializers

More kryo serializers
Apache License 2.0
381 stars 120 forks source link

serializer for org.hibernate.proxy.HibernateProxy #104

Open gMan1990 opened 5 years ago

gMan1990 commented 5 years ago

a Entity instance that select with hibernate from db, but it's a HibernateProxy

import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import org.hibernate.annotations.DynamicUpdate;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
@DynamicUpdate
public class DemoEntity {
  @Id
  private Long id;
  private Date createTime;
}

how serialization and deserialization the instance?

Caused by: java.io.NotSerializableException: org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) ~[?:1.8.0_192]
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) ~[?:1.8.0_192]
    at com.esotericsoftware.kryo.serializers.JavaSerializer.write(JavaSerializer.java:51) ~[kryo-4.0.2.jar:?]
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575) ~[kryo-4.0.2.jar:?]
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:79) ~[kryo-4.0.2.jar:?]
    at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:508) ~[kryo-4.0.2.jar:?]
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575) ~[kryo-4.0.2.jar:?]
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:79) ~[kryo-4.0.2.jar:?]
    at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:508) ~[kryo-4.0.2.jar:?]
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651) ~[kryo-4.0.2.jar:?]
magro commented 5 years ago

Do you want to submit a PR?

gMan1990 commented 5 years ago

@magro not PR, a question, (updated at home just now, sorry!

magro commented 5 years ago

I'd suggest to check out how hibernate proxy implements Java serialization and then implement it for kryo. Alternatively you could have a look at hibernate proxy serialization of other serialization libs.