ejb@glassfish.java.net

RE: question on entity relation. - unidirectional

From: Eve Pokua <gorgeous65_at_msn.com>
Date: Sat, 8 Mar 2008 01:09:15 +0000

Hello everyone,
 
Regarding this Embeddable class:
 
@Embeddable
public class Stockinforent implements java.io.Serializable {
                             @Column(name="DELIVERYDATE", nullable=false, length=35) private String deliverydate; @Column(name="STOCKQUAN", nullable=true, length=35) private Long stockquanity; @JoinColumn(name="sid") @ManyToOne private Suppliercompanyent suppliercompanyent; @JoinColumn(name="delivid") @ManyToOne private DeliveryCompanyent deliveryCompanyent;
}The Stockinforent is an embeddable class inside Iteamdetailsent and it is also in relation to other entities as detailed above.
To record a new record into the Iteamdetailsent table of the DB, I must have all and especially the ID of all relation entities.
So how do I make sure both the new data for Iteamdetailsent and Stockinforent is entered into the DB at the same time( the data would
be for the same record).
 
Im a little stack in here so any suggestion would be apprecaited.
 
Thanks
 
eve


From: gorgeous65_at_msn.comTo: persistence_at_glassfish.dev.java.netCC: ejb_at_glassfish.dev.java.netDate: Wed, 20 Feb 2008 21:55:57 +0000Subject: RE: question on entity relation. - unidirectional


Hello everyone, James/Gordon, Thank you all so much for your help. So for anybody learning just like me, I used Embeddable for Stockinforent which was embedded within Iteamdetailsent with AttributeOverrides as: @Embedded @AttributeOverrides({ @AttributeOverride(name="sid" , column=_at_Column(name="ssid")), @AttributeOverride(name="delivid" , column=_at_Column(name="sdelivid")) }) And everything is working good. Thanks eve


From: gorgeous65_at_msn.comTo: persistence_at_glassfish.dev.java.netCC: ejb_at_glassfish.dev.java.netDate: Wed, 20 Feb 2008 16:38:14 +0000Subject: RE: question on entity relation. - unidirectional

Hello James/Gordon, First of all, I would like to say thank you so much for your replies. <Could you include your current mapping annotations or XML for the twoclasses.> With regards to Stockinforent, this is how I relate to the other entities: public class Stockinforent implements java.io.Serializable { ...... @Id @Column(name = "ITMID", insertable=false, updatable=false) private String itmid; @OneToOne() @JoinColumn(name="ITMID") private Iteamdetailsent iteamdetailsent; @JoinColumn(name="sid") @ManyToOne private Suppliercompanyent suppliercompanyent; @JoinColumn(name="delivid") @ManyToOne private DeliveryCompanyent deliveryCompanyent;...... public Iteamdetailsent getIteamdetailsent(){ return this.iteamdetailsent;} public void setIteamdetailsent(Iteamdetailsent iteamdetailsent){ this.iteamdetailsent=iteamdetailsent; this.itmid = iteamdetailsent.getItmid();} public Suppliercompanyent getSuppliercompanyent(){ return this.suppliercompanyent;} public void setSuppliercompanyent(Suppliercompanyent suppliercompanyent){ this.suppliercompanyent=suppliercompanyent;} public DeliveryCompanyent getDeliveryCompanyent(){ return this.deliveryCompanyent;} public void setDeliveryCompanyent(DeliveryCompanyent deliveryCompanyent){ this.deliveryCompanyent=deliveryCompanyent;} ..........} How can I override entities as the get and set methods are of entity type If I understand what you mean: @Embedded
 @AttributeOverrides({ @ManyToOne @AttributeOverride(name="sid" , column=_at_JoinColumn("ssid")), @AttributeOverride(name="delivid" , column=_at_JoinColumn("sdelivid"))})
:~) Or may be not?Thankseve
   

From: gordon.yorke_at_oracle.comTo: persistence_at_glassfish.dev.java.netDate: Wed, 20 Feb 2008 11:00:28 -0500Subject: RE: question on entity relation. - unidirectional


With regard to the exception, have you added the attribute overrides to the Entities that share the Stockinforent?
--Gordon

-----Original Message-----From: Eve Pokua [mailto:gorgeous65_at_msn.com]Sent: Wednesday, February 20, 2008 10:42 AMTo: persistence_at_glassfish.dev.java.netCc: ejb glassfishSubject: RE: question on entity relation. - unidirectionalHello, You are right and I've thought of that before. But all of my queries have a lot todo with Iteamdetailsent. And I have come so far with this project. Really, Stockinforent is actually part of Iteamdetailsent. I have divided it to give me a better control over the system. But may be I was wrong. eve


Date: Wed, 20 Feb 2008 08:51:21 -0500From: gordon.yorke_at_oracle.comTo: persistence_at_glassfish.dev.java.netCC: ejb_at_glassfish.dev.java.netSubject: Re: question on entity relation. - unidirectionalAre you using Attribute overrides for the other class Suppliercompanyent?To solve your initial problem you could always query on the "Stockinforent" instead of "Iteamdetailsent" and use the OneToOne reference to display the "Iteamdetailsent" details.-- GordonEve Pokua wrote:


Hello everyone, I tried to used embeddable class as below but then got some error: Descriptor Exceptions: ---------------------------------------------------------Exception [TOPLINK-93] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.DescriptorExceptionException Description: The table [ITEMS] is not present in this descriptor.Descriptor: RelationalDescriptor(stockInformation.Suppliercompanyent --> [DatabaseTable(SUPPLIERS)])Runtime Exceptions: ---------------------------------------------------------Deployment error:The module has not been deployed.See the server log for details.The embeddable class is also in relation to another class. I'm kind of running outof ideas and would appreciate any suggestions. Unless I have to stick to bidirectional. Thanks eve


From: gorgeous65_at_msn.comTo: ejb_at_glassfish.dev.java.netCC: persistence_at_glassfish.dev.java.netDate: Mon, 18 Feb 2008 15:36:15 +0000Subject: RE: question on entity relation. - unidirectional

Hello everyone, I was doing a research on this and came across the following about embeddable class: http://www.theserverside.com/tt/articles/article.tss?l=MigratingJDBC Check the entity Accounts and ContactInformation: @Entity
@Table(name = "ACT")
public class Account implements java.io.Serializable {

    protected String userId;
    protected ContactInformation info;
   
    public Account () {}
    
    public Account (String userId, ContactInformation info) {
        this.userId = userId;
        this.info = info;
    }

    @Id
    @Column(name="USERID")
    public String getUserId() {
        return userId;
    }
    @Embedded
    public ContactInformation getContactInformation() {
        return info;
    }
   
   
    
   ...
   ...

}_at_Embeddable
@Table(name = "ACT")

public class ContactInformation implements java.io.Serializable {

    protected String telephone;
    protected String email;
    protected String familyName;
    protected String givenName;
    
    public ContactInformation() {}

    public ContactInformation(String familyName,
                String givenName,
                String telephone,
                String email){

        this.givenName = givenName;
        this.familyName = familyName;
        this.email = email;
        this.telephone = telephone;
       }

    @Column(name="FIRSTNAME")
    public String getGivenName(){
        return givenName;
    }

   ...
   ...


}
The above code was copied from: http://www.theserverside.com/tt/articles/article.tss?l=MigratingJDBC Could this be the answer to my problems. Instead, have two entities and then one table. Embeddedone entity in another, so there is no worries of relations. Then in a case liken this, I would display data usinga code as below: acount.contactInformation.telephone;acount.contactInformation.email;acount.contactInformation.familyName;acount.contactInformation.givenName; I'm I on the right track? Thanks eve


From: gorgeous65_at_msn.comTo: ejb_at_glassfish.dev.java.netCC: persistence_at_glassfish.dev.java.netDate: Mon, 18 Feb 2008 13:16:11 +0000Subject: question on entity relation. - unidirectional

hello everyone, I have two entities: public class Iteamdetailsent implements Serializable{ @Id @Column(name="ITMID", nullable=false, length=8) private String itmid; .... And public class Stockinforent implements java.io.Serializable { @Id @Column(name = "ITMID", insertable=false, updatable=false) private String itmid; @OneToOne() @JoinColumn(name="ITMID") private Iteamdetailsent iteamdetailsent; ..... Stockinforent does not required an ID of it's own so it is using Iteamdetailsent foriegn keyas it's id. Now I am also using the MVC to get and display data to client. Moreover, I amalso using displaytag as part of my design. Now, I am using a servlet to retrieve data from the entitiesand then forwarding data to a JSP to display to client. For example, in my display JSP: <display:table name="sessionScope.iteamdetailsent" ..> <display:column property="itmid" title=" Itemcode "/> <display:column property="itmname" sortable="true" headerClass="sortable" title=" Name "/> ...</display:table> Now, how do I display data or retrieve data of Stockinforent in relations to Iteamdetailsent?I am hoping that I won't have to use bi-directional entity relation, as it's so hard to maintain.Please, help. Thanks eve

Messenger on the move. Text MSN to 63463 now!

Think you know your TV, music and film? Try Search Charades!

Think you know your TV, music and film? Try Search Charades!

Messenger on the move. Text MSN to 63463 now!

Think you know your TV, music and film? Try Search Charades!

Think you know your TV, music and film? Try Search Charades!
_________________________________________________________________
Who's friends with who and co-starred in what?
http://www.searchgamesbox.com/celebrityseparation.shtml