How to persist a nullable one-to-one child of an updated parent?

We have the following case:
- Parent entity (Employee, table name=Employee) has a child entity (EmployeePosition, table name=EmployeePosition)
We strongly need the EmployeePosition to be saved in another table for other reasons
- Child Entity field in Employee:
@OneToOne(mappedby="employee")
private EmployeePosition employeePosition ;
Required Scenario:
1. Open an existing employee record has employeePosition=null --> We do that normally
2. Select a position for the employeePosition --> We do that normally
3. Merge Employee entity, and JPA persists the employeePosition AUTOMATICALLY --> Don't know what to do or which annotations to use
How to do step 3?
N.B.
We tried Cascade.ALL, but, it generates exception (like: primary key column is not found as a parameter for the SQL built by JPA; the SQL is SELECTing from EmployeePosition using Employee Primary Key as parameters and not EmployeePosition primary key), as the parent entity is being merged while the child entity is being persisted; apparently, not supported.
Thanks in advance

You should be able to just find() the Employee and set its position and commit.
If you are finding the Employee in a seperate transaction/EntityManager or serializing it, then you can use merge(), which should work.
Include your code, SQL log, and exception stack trace.

Similar Messages

  • How to add an item object as a child for a specified parent node in AdvancedDataGrid in Flex?

    Hi all,
              This is the code, to add a object as a child into a specified parent node in AdvancedDataGrid in flex.
    <?xml version="1.0" encoding="utf-8"?><mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()" width="100%" height="100%">
    <mx:Script><![CDATA[
    importmx.controls.Alert; 
    importmx.collections.IHierarchicalCollectionViewCursor; 
    importmx.collections.IHierarchicalCollectionView;  
    importmx.collections.ArrayCollection; [
    Bindable]private var objectAC:ArrayCollection = newArrayCollection(); 
    //This method is used to construct the ArrayCollection 'flatData' 
    private function onCreationComplete():void{
    var objOne:Object = newObject(); objOne.name =
    "Rani"; objOne.city =
    "Chennai";objectAC.addItem(objOne);
    var objTwo:Object = newObject(); objTwo.name =
    "Rani"objTwo.city =
    "Bangalore";objectAC.addItem(objTwo);
    var objThree:Object = newObject(); objThree.name =
    "Raja"; objThree.city =
    "Mumbai";objectAC.addItem(objThree);
    //This method is used to add one object as a child item for the parent node 'Rani' 
    private function addChildItem():void{
    var dp:IHierarchicalCollectionView = groupedADG.dataProvider asIHierarchicalCollectionView;  
    varcurent:IHierarchicalCollectionViewCursor = groupedADG.dataProvider.createCursor();  
    var dummyParentNode:Object = {name:"Rani", city:"New Delhi"};  
    var obj:Object = null; 
    while(curent.current){
    // To get the current node objectobj = curent.current;
    // Add Child item, when depth = 1 and Node name should be "Rani" 
    if (curent.currentDepth == 1 && obj["GroupLabel"] == "Rani"){
    dp.addChild(curent.current, dummyParentNode);
    curent.moveNext();
    groupedADG.dataProvider = dp;
    groupedADG.validateNow();
    groupedADG.dataProvider.refresh();
    ]]>
    </mx:Script> 
    <mx:AdvancedDataGrid id="groupedADG" x="10" y="15" designViewDataType="tree" defaultLeafIcon="{null}" sortExpertMode="true" width="305" > 
    <mx:dataProvider> 
    <mx:GroupingCollection id="gc" source="{objectAC}"> 
    <mx:grouping> 
    <mx:Grouping> 
    <mx:GroupingField name="name"/> 
    </mx:Grouping> 
    </mx:grouping> 
    </mx:GroupingCollection> 
    </mx:dataProvider> 
    <mx:columns> 
    <mx:AdvancedDataGridColumn headerText="Name" dataField="name"/> 
    <mx:AdvancedDataGridColumn headerText="City" dataField="city"/> 
    </mx:columns> 
    </mx:AdvancedDataGrid> 
    <mx:Button x="10" y="179" label="Open the folder 'Rani'. Then Click this Button" width="305" click="addChildItem()" /> 
    </mx:Application> 

    Hi,
    It's not possible to 'append' a StringItem or a TextField (or any other lcdui.Item object) to a Canvas or GameCanvas. You can only draw lines, draw images, draw text, etc etc, on a Canvas screen. So, you can only 'simulate' the look and feel of a TextField (on a Canvas) by painting it and adding source code for command handling (like key presses). However, this will be quite some work!!
    lcdui.Item objects can only be 'appended' to a Form-like Displayable.
    Cheers for now,
    Jasper

  • How to update parent and child tables while updating parent table

    I have a parent table EMPLOYEE which includes columns (sysid, serviceno,employeename...) sysid is Primary key, serviceno is Unique key and I have child table DEPENDENT includes columns (sysid,employee_sysid,name,dob...) here again SYSID is primary key for DEPENDENTS table, employee_sysid is Foreign key of EMPLOYEE table.
    Now I want to change SYSID (using sequence) in EMPLOYEE table which need to be update in DEPENDENTS table as well
    Note: I have 10000 records in EMPLOYEE table as well as I have 5 more child tables which need to update new SYSID.
    please help me

    first disable the FOREIGN KEY Constraints.
    you can update Parent as well as Child record also with help of trigger.
    here i am giving you one examlpe..it may help u.
    create table parent(id number primary key,name varchar2(100))
    create table child_1(id number primary key,p_id number,dob date,
    CONSTRAINT FK_id FOREIGN KEY (p_id) REFERENCES parent (ID))
    create table child_2(id number primary key,p_id2 number,addr varchar2(1000),
    CONSTRAINT FK_id2 FOREIGN KEY (p_id2) REFERENCES parent (ID))
    insert some test data to parent and child tables.
    alter table child_2 disable constraint FK_id2
    alter table child_1 disable constraint FK_id2
    CREATE OR REPLACE TRIGGER delete_child
    BEFORE UPDATE ON parent
    FOR EACH ROW
    BEGIN
    UPDATE CHILD_1
    SET P_ID=:NEW.ID
    WHERE P_ID=:OLD.ID;
    UPDATE CHILD_2
    SET P_ID2 =:NEW.ID
    WHERE P_ID2=:OLD.ID;
    END;
    then Upadte parent table primary key col and check the child tables.
    then enable the constraints...

  • I have three videos to edit.How do I save each one so I can burn them together to a DVD?

    I have three videos to edit. How do I save each one so I can burn them together to a DVD?

    Use Share/Computer/AVI to output each video as a DV-AVI.
    Then open a new project set up for DV and combine the three AVIs on that timeline. Voila!

  • HT204053 i RECENTLY PURCHASED ANOTHER IPHONE.  MY INTERNET IS NOT WORKING.  I JUST CREATED AN APPLE ID.  WHAT'S NEXT?  I NOW HAVE TWO DIFFERENT ACCOUNTS WITH DIFFERENT USER NAMES.  HOW CAN I USE ONLY ONE ACCOUNT FOR ITUNES, ICLOUD APPLE ID ETC???

    I RECENTLY PURCHASED ANOTHER IPHONE.  MY INTERNET IS NOT WORKING.  I JUST CREATED AN APPLE ID.  WHAT'S NEXT?  I NOW HAVE TWO DIFFERENT ACCOUNTS WITH DIFFERENT USER NAMES.  HOW CAN I USE ONLY ONE ACCOUNT FOR ITUNES, ICLOUD APPLE ID ETC???

    Welcome to the Apple community.
    iTunes and iCloud and different accounts, you will need to delete both accounts from your device before adding the new details in their place.
    For iCloud go to settings > iCloud, scroll down and hit the delete button. You can then sign back in using your correct details. For iTunes go to settings >store, tap your account ID and then sign out, you can then sign back in using your correct Apple ID.

  • How do I move up one folder while browsing Time Machine?

    When I'm viewing a folder in Time Machine's "Star Wars" view, how do I move up one folder, to view the current folder's parent folder?
    In Finder, I have several ways to do it: I could either hit CMD+Up Arrow, or CMD-click the title bar then click on the parent folder I want, or double-click the folder I want from the folder path in the bottom bar. But none of these methods work in Time Machine.

    JUst like you would in the Finder.  I use the Path button in the Finder's toolbar:
    If you don't thave the Path button in the toolbar use the Customize Toolbar menu option in any Finder window to place it in the toolbar.
    OT

  • How can i print just one page of photo book without printing the entire book

    how can i print just one page of photo book without printing the entire book

    Jim,
    Take heart.  We can help.
    First turn on page view so you can see how the content of your sheet fits on the page(s).  A Numbers document contains sheets (listed on the left) which in turn contain tables, charts, text, and graphics.  Select the sheet you want to print on the left, then enable page view by selecting the menu item:
    "View > Show Print View":
    Now you should see your content and how it fits on one, or more, pages.  If thie content is too big for one page use the controls and the bottom left of the window to expose the sheet controls:
    Here a table is too big to fit on one page:
    slide the "Content Scale" slider so the content fits:

  • How to show more than one record at a form-like style report?

    Hi All,
    I developed a form-like style report
    I want it to show more than one record at once (At the same page)
    I tried that by setting the value to "Maximum records per page" property for the repeating frame to 10
    but when I close the property palete and open it agian the value is returned to 1 !!!
    how to show more than one record at the same page?????
    Thank u

    Hi,
    there's perhaps another property like "page protect". If than 2 records didn't fit at one page there's a page break. Or is there any object inside the repeating frame with page-break properties? Sorry .. it's like looking into a chrystal ball ...
    Regards
    Rainer

  • Select statement problem. how to get data in one row

    SELECT
    razm.datum_sklenitve,
    razm.datum_prenehanja,
    FROM
    zket_zaposlenci zap,
    zket_delovna_razmerja razm,
    zket_delovne_razporeditve razp,
    zket_sistemizacije_dm sistdm,
    zket_organizacijske_enote oe,
    zket_delovna_mesta delm
    WHERE
    zap.iid_zaposlenca = razm.iid_zaposlenca and
    razm.iid_delovno_razmerje = razp.iid_delovno_razmerje and
    sistdm.iid_sistemizacija_dm(+) = razp.iid_sistemizacija_dm and
    nvl(sistdm.iid_organizacijske_enote, razp.iid_organizacijske_enote) = oe.iid_organizacijske_enote and
    sistdm.iid_delovno_mesto = delm.iid_delovno_mesto and
    razm.datum_sklenitve <= to_date('31.12.'||:v_datum, 'dd.mm.yyyy') and
    nvl(razm.datum_prenehanja, to_date('31.12.'||:v_datum, 'dd.mm.yyyy')) >= to_date('01.01.'||:v_datum, 'dd.mm.yyyy') and
    razp.datum_nastopa_dela <= to_date('31.12.'||:v_datum, 'dd.mm.yyyy') and
    nvl(razp.datum_prenehanja_dela, to_date('31.12.'||:v_datum, 'dd.mm.yyyy')) >= to_date('01.01.'||:v_datum, 'dd.mm.yyyy') and
    zkep_splosno.zkep_hierarh_oe_n(nvl(sistdm.iid_organizacijske_enote, razp.iid_organizacijske_enote), :v_oe, to_date('31.12.'||:v_datum, 'dd.mm.yyyy')) = 1 and
    to_char(zkep_splosno.zkep_vrni_prvi_dr(razm.iid_delovno_razmerje, to_date('31.12.'||:v_datum, 'dd.mm.yyyy')), 'yyyy') = :v_datum
    and zap.iid_zaposlenca = 1093507
    order by razm.datum_sklenitve DESC
    return this rows:
    datum_sklenitve     datum_prenehanja
    1: 01.10.2010 00:00:00 | 31.12.2010 00:00:00
    2: 01.10.2010 00:00:00 | 31.12.2010 00:00:00
    3: 01.04.2010 00:00:00     | 31.08.2010 00:00:00
    4: 01.02.2010 00:00:00     | 31.02.2010 00:00:00
    how can i get in one select just this result.
    1: : 01.10.2010 00:00:00 | 31.08.2010 00:00:00 (first of A and then the next one of B which is not the same as top of B)
    I try everything but i do not know how. If anyone know how to do this.
    regards,
    MB

    Simma wrote:
    But the above is not documented.Not only that, but it's string aggregation which isn't meeting the OP's requirements.
    Though you could be easily forgiven as the OP hasn't clearly stated the logic behind the requirements.
    It could be something like wrapping the original SQL with something like the following...
    SQL> ed
    Wrote file afiedt.buf
      1  with t as (select date '2010-10-01' as ds, date '2010-12-31' as dp from dual union all
      2             select date '2010-10-01', date '2010-12-31' from dual union all
      3             select date '2010-04-01', date '2010-08-31' from dual union all
      4             select date '2010-02-01', date '2010-02-28' from dual)
      5  --
      6  -- END OF TEST DATA
      7  --
      8  select max(case when rn = 1 then ds else null end) as ds
      9        ,max(case when rn = 2 then dp else null end) as dp
    10  from (
    11        select ds, dp, row_number() over (order by ds desc nulls last) rn
    12        from (
    13              select case when lag(ds) over (order by ds desc) = ds and lag(dp) over (order by ds desc) = dp then null else ds end as ds
    14                    ,case when lag(ds) over (order by ds desc) = ds and lag(dp) over (order by ds desc) = dp then null else dp end as dp
    15              from t
    16              order by t.ds
    17             )
    18*      )
    SQL> /
    DS                  DP
    01/10/2010 00:00:00 31/08/2010 00:00:00
    SQL>but who knows?

  • Adobe Cloud has 2 different Muse programs.... how do I know which one is the newer better version?

    So I am new to Muse, and my Adobe Cloud has 2 different programs from Muse... how do I know which one is the newer better version?
    One Must program (Muse CC 2014.2)  has a black background when working on it... it looks like other Adobe programs such as Photoshop.
    The other one is light color (Muse CC) very similar to the black color Muse on functions.....
    One of the difference I notice is that the light color Muse has a few widgets in the library, while the black background Muse seems to have an empty library
    So... why are there 2 different Muse programs in my Adobe Cloud?

    Hi
    The latest version of Muse is 2014.2, so you need to uninstall another version of Muse manually.
    regarding the items in Library, you can add items in your library manually, as shown in this article
    Adobe Muse Help | Organizing and reusing design elements using Library panel
    Please let me know if you have any other query.

  • TS3988 When I try and log into the icloud, I get a message that my Apple ID is valid but not an icloud account. How can i make it one?

    Whin I try and long into the icloud, I get a message that my Apple ID is valid, but the it is not an icloud account, how can I make it one?

    To use iCloud on a PC, you must first set it up using a device with iOS5 or a Mac with OS X Lion.

  • How to run SAP BUSINESS ONE 8.8 clients on windows and use MaxDB on linux/W

    Good day,
    As the subject shows we have SAP BUSINESS ONE 8.8 and I want to find out how to use it in combination with MaxDB instead of MS SQL. I find a lot of MaxDB stuff on the net but no guides on how to setup SAP BUSINESS ONE 8.8 clients on windows workstations and connect them to MaxDB.
    Is this possible and if so how do I go about doing it ?
    Any assistance is greatly appreciated .

    Hi,
    I suggest you to check the supported server for B1 in this link:
    http://service.sap.com/smb/sbo/platforms
    You will know the sap b1 supported platform.
    If you really want to use maxDB on linux/W as B1 server, you can send a development request to SAP AG.
    JimM

  • HT1451 If I have two iTunes libraries on one computer, how do I know which one is opening when I click on the iTunes icon on the desktop?

    If I have two or more iTunes Libraries on one computer, how do I know which one is opening when I click on the iTunes icon on my desktop?

    You cannot.
    When you sync to a new library, it will erase the current content.
    Use your backup copy of the old computer to copy everything to the new one.

  • How to move table from one tablespace to other tablespace?

    how to move table from one tablespace to other tablespace?

    887274 wrote:
    how to move table from one tablespace to other tablespace?
    alter table <table_name> move  tablespace <new_tablespace_name>;
    Rebuild the indexes; alter index <index_name> rebuild <new_tablespace_name> online;Example;:
    SQL> create table ttt( ID NUMBER PRimary key);
    Table created.
    SQL> insert into ttt values (1);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> select index_name, status  from dba_indexes where table_name='TTT';
    INDEX_NAME                 STATUS
    SYS_C0010863                 VALID
    SQL> alter table ttt move tablespace users;
    Table altered.
    SQL> select index_name, status  from dba_indexes where table_name='TTT';
    INDEX_NAME                 STATUS
    SYS_C0010863                 UNUSABLE
    SQL> alter index SYS_C0010863 rebuild tablespace users online;
    Index altered.
    SQL> select index_name, status  from dba_indexes where table_name='TTT';
    INDEX_NAME                 STATUS
    SYS_C0010863                 VALID
    SQL>

  • My daughter accidentally dumped my iTouch into the tub.  It is ruined.  How can I receive my one time regrant on all the songs I've lost.  There were approximately 80 songs I purchased on iTunes.  They get me through the day!  Please help!

    My daughter accidentally dumped my iTouch into the bath tub.  It is ruined.  How can I receive my one time regrant to get back the 80 plus songs I purchased and downloaded on iTunes?  I'm devastated....please help!  My husband bought me the new iPhone4 for my new Mother's Day gift.  I would like to download all the songs I lost.  Thank you so much!

    You can redownload the songs as many times as you want, the "one time regrant" no longer exists. Make sure you are using the same apple id on both your dead itouch and your iphone 4. On your iphone 4 go to the itunes app > Purchased (may be under more based on your settings) at the top click not on this iphone, click all songs then click the little cloud next to each song you want to redownload. It will prompt you for your id and password and the begin your download

Maybe you are looking for

  • Server crashes in VC Report (BPM reporting services) 503 Unavailable

    Hello All We are facing a problem when try to access a VC Report. In the most cases, when I define filters in the Form filter zone of my report and push the event button (submit), the query hangs and the server crashes whit "Out of Memory" error. Do

  • Can no longer access .me email on all devices. What did I do wrong?

    I can no longer receive an email on my iphone if the message has been received by outlook on my PC. The message finds outlook and is no longer pushing to my iphone and iCloud online email. I cannot figure out what I did to disrupt this behavior as th

  • My hard drive is full, and it will not let me delete anything... :(

    hello, so here is the story... i bought my iMac about a little more than half year ago and i really like this mac. About 3 months ago, my computer started popping up me hard drive is full messages, and i did not really bother to delete any files. Bec

  • Vendor Balane is not tally with the Reconcilation Account

    Hi to all.. When i am checking vendor reconcialtion account T,code S_alr_87012082 For eg my reconcilation account  no is 100000, and ia m checking in Fs10n Gl balance its not matching some differance is there. But it should match .. pls guide me

  • AD Powershell script

    Hello Guys, I research a script to move AD Computer from a txt file to a different OU and for each machine disable the account. Also I want finally a logfile that define all the different result. Thank you in advance,