Friday, December 7, 2007

Spring MVC, Data Binding and JPA

A project that I am working on is using Spring MVC. Naturally, we would like to use its data binding facilities to handle data coming in from HttpRequests into our beans. As mentioned by Matt Fleming in this blog post, the Spring docs don't do a great job of explaining how to deal with data binding when the bean in question has a collection as a property. Something like this:

public class Person
{
private String name;
private List<Address> addresses;
}

As Matt mentions, using LazyList found in the Apache Commons Collections is one way to get Spring to bind dynamic collections into your beans (in the example, use a lazy list for the addresses). However, you can run into some issues if your persisting your beans using JPA.

We're using OpenJPA, and when we try to persist an object that has a LazyList in one of its properties, it chokes. The problem is that it can't proxy LazyList because it doesn't have a default constructor. To get around this, we're applying a pretty simple hack. Before Spring does the data binding, we decorate the collection with a LazyList. Before we persist the object with JPA, we copy the collection back to a plain old ArrayList.

An example of doing this can be seen with Spring MVC's SimpleFormController in DocumentLocationCreationController. To help out with the whole process, we've created a LazyListHelper to make the decorating and copying easier.

If you're using Spring MVC with JPA, hopefully this will save you some headaches.

21 comments:

mtoha said...

can I download the netbeans project for your post please?

Unknown said...

Can i download this project ..

Legal Herbal Online said...

That is a amazing web page in addition to I am unable to suggest anyone guys Quality Ibeacon ample. Full of reference in addition to excellent page layout super easy about the sight. You should complete sustain this specific excellent perform.

Unknown said...


I just have a gaze here and appear Brobdingnagian to travel seeking out this journal. flush content composing hand and intensely useful location auto title loan. i might like most of we've got got got a bent to tend to tend to tend to World Health Organization unit to travel making a shot these kinds of things, here we've got got got a bent to tend to ar getting to notice everything. i'm with the content honor associate degreed do esteem him as associate honest supplier. Thanks for your exertions and you too.

Unknown said...

The first several months of my site there were no comments; just give it time; now they come in like crazy every day! Thanks.Watercolor Paintings for sale

marko said...

Requirements of individuals can be shifted, for which they need money. These needs can fluctuate from purchasing another dress for some event, purchasing another pack, a sudden therapeutic cost or an instructive need and so forth for everything these needs, individual money advance gives the cash. aaa1autotitleloans.com/chicago

marko said...

When you have talked about your advance choices with a couple of moneylenders, you can pick the best and most suitable offer and begin putting something aside for that fantasy excursion. As of now, you ought to be looking into conceivable housing and evaluating carrier tickets and in addition auto rentals. auto title loans montgomery

marko said...

Simple access to client administration - Did you realize that not all the organizations found in your hunt really have a phone that works? It is vital that you have the capacity to contact your loan specialist amid typical business hours. Try not to settle for anything not as much as quality client administration. Somebody who will tune in, answer your inquiries and location your worries without needing to make all needed endorsements. Recollect that, it is their business to offer assistance. Cash Advance

Unknown said...

An immense measure of the bike pushes conceivable accomplice you to finish sections ages to month, so it is stunning that while you're in light of the way that the mass you poor to get, you watch that you'll see the settlement to control the ages' mind-boggling part to ages reimbursements in the wake of bringing on any developing bread-and-spread hardship. Payday Loans

Unknown said...

A acceptable way of analytic your money problems is through applying for Claimed loans. But of course, a Claimed accommodation would beggarly that you are answerable to pay for it every ages with your own money. So if you aren't abiding that your bacon could handle addition affectionate of payment, again maybe you should anticipate adamantine afore you do administer for a Claimed loan. Not alone will a Claimed accommodation absolute you of your annual budget, it could additionally be alarming abnormally if you aren't able with the loans absorption rates. It is additionally best if you accept a acceptable adeptness apropos the agreement and altitude of Claimed loans. Cash Advance San-diego

Unknown said...

A acceptable way of analytic your money problems is through applying for Claimed loans. But of course, a Claimed accommodation would beggarly that you are answerable to pay for it every ages with your own money. So if you aren't abiding that your bacon could handle addition affectionate of payment, again maybe you should anticipate adamantine afore you do administer for a Claimed loan. Not alone will a Claimed accommodation absolute you of your account budget, it could additionally be alarming abnormally if you aren't able with the loans absorption rates. It is additionally best if you accept a acceptable ability apropos the agreement and altitude of Claimed loans Auto Title Loans

Justin said...

Something else is that, some private moneylenders will unite just advances taken from specific loan bosses. It will be a smart thought to check with the private bank first in the event that you can merge your advances particularly on the off chance that you have a few from one leaser. cash advance

marko said...

One of the best advantages of applying online for your private understudy credit is that you can look at rates from changed foundations and in addition analyze adjusting charges, which might be anywhere in the range of zero dollars to a specific rate of the advance sum. payday loans san-diego

Paulo said...
This comment has been removed by the author.
Paulo said...

The Department of Education has set some unmistakable rules for those understudies who will have an extreme time to meet all requirements for credits. In the event that you are detained, have a conviction for a medication offense or will take an interest in a compulsory common responsibility in the wake of being imprisoned for a sexual offense, government understudy help will be exceptionally constrained. payday loans san-diego

Paulo said...

This organization advance offers low interests and no sort of credit check or cosigner essentials. Essentially, it's the perfect development for some individual who has poor credit in light of the fact that there is emphatically no discipline for having poor record of advance reimbursement. Payday Loans Chicago

Primary care & Family doctor said...

If you have a family doctor you can trust and with whom you connect, you can be sure about the help you will receive.primary care

Unknown said...

Terima kasih untuk infomasinya jual thai tea online

Justin said...

Thanks a lot to admin for this post. You can also visit my site to get more information. https://divorceincolorado.com/cherry-creek-co

Alex daina said...

Progressions in innovation have made life a great deal less demanding for every single one of us. This is valid for all parts of our lives, even in the region of our funds. Liquidating checks, for instance, is a considerable measure less demanding these days than it was previously. Check Cashing Oceanside

Peter short said...

his is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the leisure here! Keep up the excellent work.
title pawn Atlanta