cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom Cassimon" <...@cassimon.mine.nu>
Subject RE: Problem with primary key in Persisted object list
Date Thu, 10 Sep 2009 20:24:07 GMT
Hi,

the method doesn't get called. Is there maybe any logging I can enable to
check why it isn't called? I use log4j.

Tom

-----Oorspronkelijk bericht-----
Van: Daniel Kulp [mailto:dkulp@apache.org] 
Verzonden: donderdag 10 september 2009 22:14
Aan: dev@cxf.apache.org
CC: Tom Cassimon
Onderwerp: Re: Problem with primary key in Persisted object list


Strange.   All I can suggest then is to set a breakpoint in the getId method

to make sure it's called during writing.  

Dan


On Thu September 10 2009 4:06:28 pm Tom Cassimon wrote:
> Yes,
> 
> It does have those methods:
> 
> ===============================
> 
> public Long getId() {
> 	return id;
> }
> 
> public void setId(Long id) {
> 	this.id = id;
> }
> 
> ===============================
> 
> One other thing, I also have @OneToOne relationships in the same Object,
>  and they have the Id fields filled in. The problem only appears in
>  @OneToMany relations.
> 
> Tom
> 
> -----Oorspronkelijk bericht-----
> Van: Daniel Kulp [mailto:dkulp@apache.org]
> Verzonden: donderdag 10 september 2009 21:48
> Aan: dev@cxf.apache.org
> CC: Tom Cassimon
> Onderwerp: Re: Problem with primary key in Persisted object list
> 
> 
> Does the "id" field have public getter and setter methods?    Without
>  those,
> 
> it wouldn't get serialized.
> 
> Dan
> 
> On Thu September 10 2009 3:19:12 pm Tom Cassimon wrote:
> > Hi,
> >
> > I'm using the newest version 2.2.3.
> >
> > The First problem I noticed is when using @OneToMany relationships
> > in entity classes I do not get the Id (on client side).
> >
> > Example class:
> >
> > === Part of Patient.java ===
> >
> >             .
> >             .
> >             .
> > @JoinTable(name = "patient_document", joinColumns = {@JoinColumn(name =
> > "patientId")}, inverseJoinColumns = {@JoinColumn(name = "documentId")})
> > @OneToMany(fetch=FetchType.LAZY)
> > private List<Document> documentList;
> >             .
> >
> > ============================
> >
> > === Part of Document.java ===
> >
> > @Entity
> > @Table(name = "document")
> > public class Document implements Serializable {
> >
> >     private static final long serialVersionUID = 1L;
> >     @Id
> >     @GeneratedValue(strategy = GenerationType.IDENTITY)
> >     @Basic(optional = false)
> >     @Column(name = "id")
> >     private Long id;
> >             .
> >             .
> >             .
> >
> > =============================
> >
> > When I check on the server side, the id field is filled in
> > with the id from the database. But when I check on the client
> > side the id is "null". This poses a problem when I submit the
> > Patient object back to the server. The First thing is because
> > the Id fields are "null" it thinks they are new objects. I update
> > this with the following code:
> >
> > //Process documents
> > if (p.getDocumentList() != null) {
> > 	for (Document d : p.getDocumentList()) {
> > 		if (d.getId() == null)
> > 			em.persist(d);
> > 		else
> > 			em.merge(d);
> > 	}
> > }
> >
> > //Finally process patient
> > if (p.getId() == null)
> > 	em.persist(p);
> > else
> > 	em.merge(p);
> >
> > Maybe I shouldn't do it this way, I'm not really sure this is good
> >  practice. As a result my database gets flooded with duplicate documents
> >  (with blob's in it) because the cleanup of Orphan's doesn't work
> 
> properly.
> 
> >  But in the first place the documents should not be reinserted every
> > time.
> >
> > The second problem appears on client side when I want to remove a
> > document from a Patient, it always removes the first in the list,
because
> > all Id fields are "null".
> >
> > An other question I have is if it is possible to do lazy loading, I mean
> > with this load the Document instance but without the byte[] (blob)
> > loaded, I don't know if it is configurable or what is the best practice
> > to accomplish this.
> >
> > -----Oorspronkelijk bericht-----
> > Van: Benson Margulies [mailto:bimargulies@gmail.com]
> > Verzonden: donderdag 10 september 2009 20:48
> > Aan: dev@cxf.apache.org
> > Onderwerp: Re: Problem with primary key in Persisted object list
> >
> > I'm afraid that I can't follow the thread here, in part due to all the
> >  extra whitespace.
> >
> > What exactly is not happening? What version of CXF? How it is
configured?
> 

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog


Mime
View raw message