DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone >

Hessian & Hibernate With Lazy Collections

Snippets Manager user avatar by
Snippets Manager
·
Feb. 23, 07 · · Code Snippet
Like (0)
Save
Tweet
898 Views

Join the DZone community and get the full member experience.

Join For Free
// description of your code here
Use this instead of the HessianServlet when you want to use hibernate lazy loaded collections with hessian. Of cource you will have to load the collections on demand from the client side when they are needed. All uninitialized collections will sent to the client as empty array lists.

import com.caucho.hessian.server.HessianServlet;

public class HibernateHessianServlet extends HessianServlet {

    public HibernateHessianServlet() {
        setSerializerFactory(new CustomSerializerFactory());
    }
}

public class CustomSerializerFactory extends SerializerFactory {

    private ListSerializer instance = new ListSerializer();

    public Serializer getSerializer(Class cl) throws HessianProtocolException {
        return (Serializer) (AbstractPersistentCollection.class
                .isAssignableFrom(cl) ? instance : super.getSerializer(cl));
    }

    private static class ListSerializer implements
            com.caucho.hessian.io.Serializer {
        private CollectionSerializer delegate = new CollectionSerializer();

        public void writeObject(Object obj, AbstractHessianOutput out)
                throws IOException {
            if (Hibernate.isInitialized(obj))
                delegate.writeObject(new ArrayList((Collection) obj), out);
            else
                delegate.writeObject(new ArrayList(), out);
        }
    }
}
Hessian (Web service protocol) Hibernate

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 11 Reasons To Use Selenium for Automation Testing
  • An Introduction to Graph Data
  • Why Great Money Doesn’t Retain Great Devs w/ Stack Overflow, DataStax & Reprise
  • The 5 Healthcare AI Trends Technologists Need to Know

Comments

Partner Resources

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo