4

I try to serialize an object that contains an other object which is itself serializable.

Is there a way to make it work ? The pointer to the other object seems to be lost when I serialize the first object.

1
  • 4
    Yes, it should work if both objects implement Serializable. Some code, please! Commented Jan 5, 2010 at 15:49

7 Answers 7

7

Here are two rules concerning persistent objects:

  • Rule #1: The object to be persisted must implement the Serializable interface or inherit that implementation from its object hierarchy
  • Rule #2: The object to be persisted must mark all nonserializable fields transient

Check the article "Discover the secrets of the Java Serialization API". It's include source code and a good explanation of the serialization process.

Source code answering "How do I serialize a tree of objects?" is also available at http://docs.oracle.com/javase/8/docs/technotes/guides/rmi/faq.html#tree

To know some "under the hood" details check this excellent article: The Java serialization algorithm revealed.

Sign up to request clarification or add additional context in comments.

1 Comment

The links provided are no more available. :(
2

The "pointer" is lost indeed. After deserialization new objects are constructed.

Before you provide your code - check whether your 2nd object isn't defined as transient - this stops java serialization.

Comments

2

All of the attributes of the Serializable object should be serialized as well, unless they're defined as transient.

Comments

1

It should work just fine, so long as everything's serializable. What do you mean by the pointer (by which I assume you mean reference) being "lost"?

Could you provide a short but complete program which demonstrates the problem? Admittedly Java binary serialization can be fiddly at times, but this much should work fine out of the box.

Comments

0

You might be happy using SOJO. It serializes the entire hierarchy of a Java object pretty easily.

Comments

0

I exactly feel the same, the inner object value will be also serializable until and unless it is being marked transient. If the inner object class was not serializable then it would throw a compile time error.

Kindly let us know if u did solve it and if my understanding is wrong.

Comments

0

https://github.com/gadieichhorn/prototype-jpa

I created this github project that includes some serialisation into a @Lob please check it out and let me know if you have any comments.

  • maven
  • jpa - eclipse link - derby
  • slf4j - logback
  • junit - hamcrest

feedback is welcomed.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.