Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] none of the @OneToMany fields are being persisted in an @Embeddable class

Hi Paul,

A quick scan of the test case shows it doesn't seem to be setting the collection of Many entities (mm) into the Embeddable (emb).
Can you correct this and upload the log as well?

Regards,
Chris


On 22/06/2011 11:53 AM, Paul Harrison wrote:
On 2011-06 -22, at 13:47, James Sutherland wrote:

  
Can you include the code you use to persist the object, and the log on finest
of the transaction.
    

I have submitted this as a bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=349483 and included a test case as an attachment to this bug.
  
Do any errors or warnings occur on startup?
    
No - and note that eclipselink has no problem creating the table structure - it is just silently fails to persist the fields.

    create table Container (
        id integer not null auto_increment,
        simple varchar(255),
        incnt varchar(255),
        primary key (id)
    );

    create table Many (
        id integer not null auto_increment,
        name varchar(255),
        other integer not null,
        CONT_IDENTIFIER integer,
        primary key (id)
    );

    alter table Many 
        add index FK247A7F38FF7A25 (CONT_IDENTIFIER), 
        add constraint FK247A7F38FF7A25 
        foreign key (CONT_IDENTIFIER) 
        references Container (id);

  
It is odd to have a OneToMany in an Embeddable as they have no id, and note
that the embeddable is not mapping the ID column that is being used in the
join.
    
Surely the point of the embeddable is that it has the id of the object in which it is embedded - I can see nothing wrong logically with what I am trying to do - though I admit that it is a fairly advanced usage... The embeddable is not mapping the id column because it is the "many" side that is using a foreign key.


  
If you move the OneToMany to the parent, or change it to use a JoinTable
instead of a JoinColumn does it work?

    
the OneToMany works fine in the parent - using a JoinTable in the embeddable does not work either.
  
Paul Harrison-8 wrote:
    
Hi,

I have a problem using eclipselink 2.2.0 in that none of the @OneToMany
fields are being persisted in and @Embeddable class. The partial source is
below with Container being the container class for the Emb class - The
tables are created as I would expect, but on trying to persist a Container
object none of Many objects are written to the database. Is this a bug or
am I doing something wrong?

@Entity
public class Container implements Serializable {

   @Id
   @GeneratedValue
   private int id;
   private String incnt;
   @Embedded
   private Emb em;
}

@Embeddable
public class Emb implements Serializable {


   protected String simple;

   @JoinColumn(name = "CONT_IDENTIFIER", referencedColumnName = "ID")
   @OneToMany(cascade = PERSIST, orphanRemoval = false)
   protected List<Many> lots;
}

@Entity
public class Many implements Serializable {

	@Id
	@GeneratedValue
       protected int id;
	protected String name;
	protected int other;
	
}


      
-----
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland 
http://www.eclipse.org/eclipselink/
EclipseLink ,  http://www.oracle.com/technology/products/ias/toplink/
TopLink 
Wiki:  http://wiki.eclipse.org/EclipseLink EclipseLink , 
http://wiki.oracle.com/page/TopLink TopLink 
Forums:  http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink , 
http://www.nabble.com/EclipseLink-f26430.html EclipseLink 
Book:  http://en.wikibooks.org/wiki/Java_Persistence Java Persistence 
Blog:  http://java-persistence-performance.blogspot.com/ Java Persistence
Performance 
-- 
View this message in context: http://old.nabble.com/none-of-the-%40OneToMany-fields-are-being-persisted-in-an-%40Embeddable-class-tp31851258p31902914.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.

_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
    



_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
  

Back to the top