Primary key in Entity Objects. How?

Hi!
I'm using Jdeveloper 9.0.3.3. I have a table with primary keys: CliId and Id. I make an entity object and choose primary key option for Cliid and Id in the entity. Now i make an viewObject from the entity object. In the viewObject, there are 2 key attribute: Cliid and Id. Now i'm generating with Jdeveloper 9.0.3.3 a standard uix page and i want to update a record, but it doesn't works. I become a bc4j error message: 'begin insert into....'.
In the UIX code i made the rowDef autocreate="true":
<bc4j:viewObjectDef name="CnedViewUsage" rangeSize="1">
<bc4j:rowDef autoCreate="true" "CurrentCnedViewUsage">
<bc4j:propertyKey name="key">
</bc4j:propertyKey>
</bc4j:rowDef>
</bc4j:viewObjectDef>
so
if the propertyKey can't catch bc4j rowkey form url, it makes a new row. There is the problem...why doesn't catch the the propertyKey the bc4j key form the url? If i check out CliId primary key from entity and key attribute from ViewObject, it begins to work.. But in the database they together are primray keys.. Has anyone an idea?
Thanks: Gabz

Does your ViewObject use more than one entity? If so, then the Key that you are using in the ViewObject probably contains the key attributes of each Entity. You can go to the attributes section of the ViewObject Wizard and click off any "Key" checkboxes for attributes that aren't a part of your "primary" Entity.
Mark

Similar Messages

  • Primary Key on Entity Object

    Hello
    I create an entity object based on a view manually (not via the wizard)BC$J. I choose a primary key to complete the operation. I created a UIX page which display 5 records at a time. It turned out that the Primary key a chose was not a primary key and the page displayed with an error indicating that there are duplicate matches. Does this mean that the BC4J is checking the entire table for duplication? In my Page, i was about to invoke the search page as the first page to force the user to enter a criteria which when entered will cause only one record to be retrieved. BC4J seems to be executing the query and checking for the duplication before even allowing the search page to appear. The Search page is the first page that appears in my application (managed to skip forcing the initial table to be rendered with rows)
    Is there a way to stop OC4J from executing and checking before i display the Search Page.
    Thanks
    Ammar

    BC4J do not check the entire table for duplication. We retrieve rows as requested by the client app and if a duplicate PK is found as rows are retrieved, we will throw an exception.
    Thanks.
    Sung

  • Compund primary key in entity bean

    hi,
    can somebody please explain how to use the compound primary key in entity beans? i have got a database table, the key of which consists of three fields, which I assign as PK when setting up the entity bean. In turn I get a compoundPK class, but without get/set-methods - is it necessary to write own get/set-methods within this class?
    In the bean class itself I get a compundPK-create() method - but what is the use of it? actually, in my findByPK-method I need the PK already.
    Hints appreciated - btw, help.sap.com is not very helpful in this case...
    regards, matthias

    WebLogic Server supports mapping a cmr field to the primary key.

  • Retrieving auto inc primary key from entity bean (MySQL DB)

    Hello,
    I searched the forum intensively, but did not find an answer for the following problem.
    I've set up an MySQL database "Location" with two fields (ID, Description), ID is my primary key and I've added the AUTO_INCREMENT flag to this field. This works fine, i can add a row in the table with my entity bean "Location" from my session bean :
    Location l = new Location();
    l.setDescription("at home");
    em.persist(l);
    and even when I ask this location back from the DB, there is no problem :
    Location l = em.find(Location.class,1);
    return l.getDescription();
    The rows in the table increment nicely. The problem however is, that you don't allways know the ID. So I would like to do the following from my session bean:
    Location l = new Location();
    l.setDescription("at home");
    em.persist(l);
    int id = l.getId();
    the getID method allways returns a null object. The row is added in the DB, but the auto incremented ID is not returned to the entity bean!
    I know I could solve this by generating the ID's myself, but one of the strengths of autoincrement should be not to have to do this, no?
    If anyone has a clue how to solve this issue, I would very much appreciate it !
    Michiel
    Edited by: Michiel82 on Dec 6, 2007 6:01 AM

    No reactions so far ... this is a work-around for the issue :
    I've created an additional table sequence with two fields: gen_key and gen_value. Then, in my Location entity bean I can add the following:
    @TableGenerator(
    name="locationGen",
    table="sequence",
    pkColumnName="gen_key",
    valueColumnName="gen_value",
    pkColumnValue="location",
    allocationSize=1
    @Id
    @GeneratedValue(strategy=GenerationType.TABLE,generator="locationGen")
    @Column(name = "id", nullable=false)
    private Short id;
    This generates the primary key in the bussiness logic, but I would like to get the autogenerated key from my MySQL database (see previous post). Is this perhaps not supported by EJB3.0?
    Michiel

  • Primary key in Entity beans

    Hi
    If my database doesn't have primary key, then how can I define ejbFindByPrimarykey
    method in Entity Beans. ? or in that case can't I use Entity beans. ?
    Pls clear my doubt.
    Thanks in advance

    Ashish,
    If my database doesn't have primary key, then how can I defineejbFindByPrimarykey
    method in Entity Beans. ? or in that case can't I use Entity beans. ?An entity bean instance needs to be uniquely identifiable. That doesn't
    necessarily mean that you have a PK in the database, but those two things do
    usually go together.
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    Clustering Weblogic? You're either using Coherence, or you should be!
    Download a Tangosol Coherence eval today at http://www.tangosol.com/
    "Ashish Mangla" <[email protected]> wrote in message
    news:3cf5b304$[email protected]..
    >

  • Primary Key With Four Column ,How to use that Column As Primary Key In Form

    Dear All,
    i have create composite Key as primary Key With Four Column .
    How can i use these column in Form With Report Page.
    How can i use these four Column as primary Key to Edit Record .
    How can i do this.
    Thanks
    Vedant

    wrap a view around your table with this bogus primary key. Use an instead of trigger to handle the inserts and updates. And then look at using surrogate keys to resolve these bad design issues...
    5 out of 4 people don't understand fractions.
    Thank you,
    Tony Miller
    Webster, TX

  • USE ROWID AS PRIMARY KEY OF ENTITY ON EJB3

    When we launch the Create Entities from Tables wizard, and create JPA (Java Persistence API) entities from existing database tables, if the table has no primary key and unique key field, you will get a warning. When you run, you will get the following information:
    Caused by: Exception [TOPLINK-7161] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.ValidationException
    Exception Description: Entity class [class model.Test] has no primary key specified. It should define either an @Id, @EmbeddedId or an @IdClass.
    Actually, every row of oracle table has a ROWID field , I think it is a good “primary key field”. Add it into Entity Java bean file as following:
    @Id
    private ROWID rowid;
    And generate accessors, ok, run……
    GOOD, No problem.
    But when you insert a new row, got an exception:
    Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-00928: missing SELECT keyword
    Error Code: 928
    Call:INSERT INTO TEST (ROWID, B, A) VALUES (?, ?, ?)
         bind => [null, 555, 555]
    Query:InsertObjectQuery(model.Test@40979b)
    555~~~, what happened?! Somebody builds a wrong SQL …
    Don’t worry! I know (…) where is the “bug”.
    Find out the class
    oracle.toplink.essentials.internal.expressions. SQLInsertStatement
    which is included in the toplink-essentials.jar,
    decompile… , fix…, compile, and jar it back.
    Fix
    if(field.getTable().equals(getTable()) || !field.hasTableName())
    to
    if((field.getTable().equals(getTable()) || !field.hasTableName()) && !field.getName().equalsIgnoreCase("ROWID"))
    OK, it is running well.
    I suggest ORACLE fix it into his next version. Do you think it is a good idea?

    Do you think it is a good idea? Not really, but that's just my two cents.

  • Primary keys in entity beans

    I am creating an assignment for an EJB class that I am teaching. The assignment will ask students to create an entity bean to represent messages posted to an internet bulletin board. The fields in the entity bean are ID number, topic, user name, date, and the message. This bean will use container-managed persistence.
    The ID number of each message will be used for the primary key.
    The client will present the user with a simple menu (at the DOS prompt) with options to list all messages, search for messages, add messages, etc.
    When a new message is added, I don't want the user to have to enter a unique ID - it should be generated in the code somewhere.
    What I'm looking for is the absolute simplest way to get an ID for each new message. (I'm planning a series of assignments, each getting more complex, and this is the simplest one).
    I was thinking of having the client get a list of all the messages, make a list of all the IDs used, find the largest ID, and add 1.
    Can anyone suggest any other techniques? Thanks!
    -J

    Two approaches:
    you could initialize the db with one row and use some (any) number as the primary key
    then when adding a new row, access the last row in the db to get it's primary key and add 1 to it.
    You could also use date+time as a string, and assuming no one adds messages at the exact date+time, then it will work.
    To work around the problem of having two messages with identical date+time (assuming lots of messages coming through), you can catch the DB exception and resubmit the entry with an updated date+time. With very heavy traffic this will eventually fail. But for what you are doing it should work fine.
    Finally, you should not run into the identical problem unless you are using asynchronous message beans. I doubt you are, so the EJB container will handle it I suspect.

  • Using CMR field as Primary Key in Entity Bean

    Hi, all!
    Can somebody tell me, is it possible to use CMR field as Primary Key field in Entity Bean?
    Thanks

    WebLogic Server supports mapping a cmr field to the primary key.

  • Pulling keys on shiny objects - how to implement holdouts?

    I am working on pulling a key in Shake, using the Keylight node.
    The fg is a close-up of a hand holding a coin, and I am using trackers on the hand to matchmove an inverted rotoshape that goes to the garbage matte input of the Keylight. The idea is that the Keylight should only have to key the close vicinity of the hand.
    The **** coin is very shiny...so reflections of green light are all over it, making the keylight rip little holes in it everywhere...sob. Hence, I am tracking a rotoshape on the coin too, so the Keylight won't work on it. I always thought this was called a hold-out matte, so I plug the tracked rotoshape into the holdout input of the keylight node. But it doesn't do the trick...:
    The coin is not keyed to fringes like before, but instead it is shining with the light blue color that I chose for the replacement color for the Keyer...I find that easier to inspect than alpha black, and we haven't built the bg yet.
    Can anyone tell me if I got the holdout principle right, or if there's a better way to keep the coin out of the keyer's scope?
    I have a tracker on it, I have a matchmove node of course, and I have an oval rotoshape to cover the outline of the coin. I have made no attempt to fill the closed rotoshape, since I have the understanding that an uninverted shape will work like a closed union of all the points it encloses.
    Forgive the tedious language, but I would really like some feedback here, and I am trying to describe what I am doing and thinking If I could only upload pics, I would show you all the nodes instead.
    Thanks to anyone who has constructive feedback!
    Cheers;
    Eivind

    sillitoechris wrote:
    sorry if i ma about to sound condesending (im not sure whta your exerience in compositing is) so forgive me if I explain too simplistically.
    Hi Chris, no worries! And many thanks for your thorough reply.
    Of course, there are things I read around here that I don't understand. My education helps me understand the principles involved...but I don't have much experience with Shake. It is probably partly my own fault that I frown upon the usability of Shake, though I understand it does the job well when used right.
    I have been fiddling with video editing and comping for about 1.5 years now, and it has also become an increasing part of my job, as you can see on www.avrtv.com.
    Mostly, I use Final Cut Pro, but fire up Shake every now and then when we try to do something special. I guess Shake is a "Specialist app", not really for casuals
    This has nothing to do with hues or coloring your original image - you are simpy telling shake you dont want the green areas anymore.
    I know. The issue I was having, appeared because I am keying with Keylight using a blue replacement color (instead of e.g. comp/premult/status). I found that it could actually be useful to render it with a forgiving replacement color, since that looked better than the shiny green from the background screen.
    switchmatte that new matte(alpha) with your original and and the blue areas yuouve keyed should disappear. - slide a background image in behind using and over node and it will show through the black areas of your matte.
    roto those areas - add it to the matte before your switchmatte and press A again - the roto will be added to your matte. (if you have tracked/stabilized) stationary/tracked or otherwise and those areas which were intially lost in your key will be brought back to your switchmatted picture.
    I am using a green backdrop. So if I do this, I will get back the coin's glowing green reflection from the original footage.
    you should consantly be hitting A and C when pulling a key to see the results of what you are doing in your key/roto mattes are affecting which parts of your image are included/excluded.
    OK, I see.
    I tend to use Keylight's status or replacementcolor views for this.
    only after that process should any color correction be added - i dont know where you are getting odd hues from because your not/shouldnt be doing anything that will result in color alteration by shake - only color identification in order to ascertain the areas to keep or remove later in the script.
    I am not doing color correction, only in a separate branch where I employ some contrast to improve tracking conditions - but not in the Keying branch.
    The blue hue comes from my chosen replacement color I have changed it to almost white, since we probably will model a white background for the comp.
    Then I will have to do the keying again, and probably use quite a few keyframes...
    Do you have input on using keyframes when keying? Is this something that you often employ in your workflow, or is it a sign of footage that really needs re-taking? (I can upload a digestible copy of the footage somewhere, if you'd lend an opinion whether you think it's worth working on, or if I should retake it).
    Thanks for your help so far!
    Best regards;
    E.
    Message was edited by: edvinpedvin

  • PL/SQL Entity Object - How to access OUT parameters in OA Page

    Hi,
    I have the following pl/sql code which takes 4 input parameter and inserts values to database table.
    create or replace procedure xxfwk_emp_create(p_person_id IN NUMBER, p_first_name IN VARCHAR2, p_last_name IN VARCHAR2, p_sal IN NUMBER, p_error_msg OUT VARCHAR2) is
    cursor c1 is select EMPLOYEE_ID from fwk_tbx_employees;
    v_status varchar2(1) := 's';
    BEGIN
    for v_c1 in c1 loop
    if v_c1.employee_id = p_person_id then
    p_error_msg:= 'Person with this id already exist';
    v_status := 'e';
    end if;
    exit when c1%notfound OR v_status='e' ;
    end loop;
    if v_status = 'e' then
    goto error;
    end if;
    INSERT INTO FWK_TBX_EMPLOYEES(EMPLOYEE_ID,
    FIRST_NAME,
    LAST_NAME,
         FULL_NAME,
    SALARY,
    CREATION_DATE,
    CREATED_BY,
    LAST_UPDATE_DATE,
    LAST_UPDATED_BY,
    LAST_UPDATE_LOGIN)
    VALUES(p_person_id,
    p_first_name,
    p_last_name,
    P_first_name||' '||p_last_name,
    p_sal,
    sysdate,
    fnd_global.user_id,
    sysdate,
    fnd_global.user_id,
    fnd_global.login_id);
    <<error>>
    null;
    END xxfwk_emp_create;
    I have following code in EO Impl class
    public void insertRow()
    try
    OADBTransactionImpl oadbTrans = (OADBTransactionImpl)getDBTransaction();
    String s = "begin xxfwk_emp_create(p_person_id=>:1, p_first_name=>:2, p_last_name=>:3, p_sal=>:4, p_error_msg=>:5);end;";
    OracleCallableStatement oraCall = (OracleCallableStatement)oadbTrans.createCallableStatement(s,-1);
    oraCall.setNUMBER(1,getEmployeeId());
    oraCall.setString(2,getFirstName());
    oraCall.setString(3,getLastName());
    oraCall.setNUMBER(4,getSalary());
    *< How to access Out Parameter from The procedure >*
    oraCall.execute();
    catch(SQLException sqlException)
    throw OAException.wrapperException(sqlException);
    catch(Exception exception)
    throw OAException.wrapperException(exception);
    In this insertRow i want to get the error message (out param) and throw this message as exception in OA page.
    What changes i need to do in my page?
    Regards,
    Ram

    You can use this code...
    String current_value=null;
    OracleCallableStatement st1=null;
    try {
    String stmt = "begin xxfwk_emp_create(:1,:2,:3,:4,:5); end;";
    OADBTransaction oadbTransaction1 = am.getOADBTransaction();
    st1 =(OracleCallableStatement)oadbTransaction1.createCallableStatement(stmt,1);
              st1.setNUMBER(1,getEmployeeId());//or you can use st1.setInt(1,getEmployeeId())
              st1.setString(2,getFirstName());
              st1.setString(3,getLastName());
    st1.setNUMBER(4,getSalary());
              //Define Out parameter...
    st1.registerOutParameter(5,OracleTypes.VARCHAR);
         st1.executeUpdate();
              //Access out parameter value
         current_value=st1.getString(5);
    catch (SQLException s) {
    throw new JboException(s);
    finally {
    try {
    if (st1 != null) st1.close();
    catch (SQLException s) { }
    }

  • How to persist an entity with Composite primary key

    Problem Statement:-
    Entity A have many to one relation with Entity C
    Entity B have many to one relation with Entity C
    Entity C have a composite primary key of (Entity A PK & Entity B PK)
    A --< C
    B --< C
    the entites are automatic generated by Dali tool
    @Entity
    public class C implements Serializable
         @EmbeddedId
         private C.PK pk;
         private int attribute;
         //Code
         @Embeddable
         public static class PK implements Serializable
              public int A_Id;
              public int B_Id;
              //Code
    @Entity
    public class A implements Serializable
         @Id
         private int AId;
         @OneToMany
         private Set<C> C_Collection;
         //Code
    @Entity
    public class B implements Serializable
         @Id
         private int BId;
         @OneToMany
         private Set<C> C_Collection;
         //Code
    i made a session Bean which add a new entity C
    Session
         A a = em.find(A.class, AId);
         B b = em.find(B.class, BId);
         C c = new C();
         C.PK pk = new C.PK();
         pk.AId(a.getID());
         pk.BId(b.getID());
         c.setPk(pk);
         c.setA(a);
         c.setB(b);
         c.setAttribute(12);
         em.persist(c);
    when running this code an exception is raised
    Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column 'A_ID' in 'field list'Error Code: 1054
    Call:INSERT INTO C (attribute, Aid, A_ID, B_ID, Bid) VALUES (?, ?, ?, ?, ?)
         bind => [2, 6, 6, 1, 1]
    this is logic as Table "C" has only 3 coloumns only "attribute" , "Aid" , "Bid"
    but the mapping is different as it adds the composite PK attributes to the insert statement
    if there is a sample code or how to solve this issue it would be great

    Hello Juwen,
    The problem is you are registering an object, assigning it a null pk, and then commiting the uow/transaction. TopLink uses registered objects to keep track of changes you make inorder to persist those changes on commit. So the simple fix is to not commit the UnitOfWork - call release() on it instead.
    Another solution is to use the session copyObject api. The simple form that only takes an object will work similar to registering the object as it will copy all persistent attributes but it will leave the primary key null. You can also use this method to specify a copyPolicy to customize the process. Using this method will be a bit more efficient, since a UOW makes both a working copy and a back up copy of objects registered, inorder to keep track of changes. Using the copyObject api will only make a single copy.
    Best Regards,
    Chris

  • How can I hide primary key column in BC4J form

    I have populated a primary key with dbsequence and how can I hide it on the form. It is populated in the DB by a trigger.

    I have populated a primary key with dbsequence and how can I hide it on the form. It is populated in the DB by a trigger. To hide it, edit the attribute using attribute-editor that you bring up by double-clicking on the attribute in the "StructurePane" .
    Then go to control-hints panel and mark the attribute setting for Display = Hide.
    Then UI wizards will not add the attribute into generated panels.
    However once you have UI generated, this hint is no more used.

  • How to Register Primary Key in Apps

    Hi All,
    I have created parent & child relation n registered in Oracle Apps
    Now i have Primary keys in that tables,how can i register that columns in Apps Database.
    If any one knows u can forward to me itis urget
    Regards
    Siva

    please re-post the question in the e-business forum

  • Ability to auto create a primary key column while creating an entity ?

    Product : oracle data modeler ( 3.0.0.665 32 bit version ) on windows XP Professional , : Target DB Oracle 11GR2
    I am new to Mozilla Rhino. Is it feasible to have a mechanism where in the primary key column name would be auto generated when the entity ( name ) is just created for the first time, and it has no columns defined yet . For e.g. one could create an entity named vendor , and after the table name is typed in, a column vendor identifier,of type numeric , is to be auto created. This mechanism should work even if the entity name changes, and the primary key is in format {tablename}_id , but it should not , if the primary key was manually set in later and is not in the expected format.

    I created this script (1) for adding an ID column (using a specific domain) to all supertype entities that do not already have an ID attribute, and a script (2) for adding primary key constraints to all ID attributes.
    - Marc de Oliveira
    Script 1:
    entities = model.getEntitySet().toArray();
    domain = model.getDesign().getDomainSet().getByName('Integer DIS Domain');
    for (var e = 0; e<entities.length;e++)
    entity = entities[e];
    if (entity.getHierarchicalParent()==null)
    attributes = entity.getAttributes().toArray(); // find existing attributes
    IDattribute = null;
    for (var a = 0; a<attributes.length; a++) // look for an ID attribute
    if (attributes[a].getName()=="ID") { IDattribute = attributes[a]; }
    if (IDattribute==null) // if an ID attribute was not found...
    IDattribute = entity.createAttribute(); // create a new ID attribute
    IDattribute.setName("ID");
    IDattribute.setDomain(domain);
    entity.moveToIndex(IDattribute,0); // move ID attribute to top
    Script 2:
    entities = model.getEntitySet().toArray();
    for (var e = 0; e<entities.length;e++)
    entity = entities[e];
    attributes = entity.getAttributes().toArray(); // find existing attributes
    IDattribute = null;
    for (var a = 0; a<attributes.length; a++) // look for an ID attribute
    if (attributes[a].getName()=="ID") { IDattribute = attributes[a];}
    if (IDattribute!=null) // if an ID attribute was found...
    key = entity.createCandidateKey(); // Create a key
    key.add(IDattribute); // Add the ID attribute to the key
    key.setPK(true); // Define the key as a primary key
    PKName = entity.getName().replace(" ","_")+"_PK";
    key.setName(PKName); // Define the key as a primary key
    entity.setPK(key); // workaround for bug...
    }

Maybe you are looking for

  • Why isn't my layout connecting divs tightly?

    I am building a website, and I am having trouble with the coding. I have a Spry Menu that needs my Nivo (jquery) Slider to fit tightly underneath it, and then have the second Spry Menu (#2) fit tightly underneath the slider. Why am I not able to push

  • Trigger Order Acknowledgement automatically

    Hi, We have a requirement wherein the sales order order acknowledgement is to be triggered when the line items in the sales order get confirmed. Please let me know how can this be achieved; is there any BADI / user-exit which might help ? The scenari

  • InputOutput error when importing SCORM 1.2 compliant content in OLM

    I'm attempting to import SCORM 1.2 content (from UPK) in OLM and I continue to get the error "The content upload failed (InputOutput error)". We've tried it on 9ias, AS10g, all give the same error. We used the SCORM example from Oracle, replaced the

  • [Solved] Change tray icons in tint2?

    Is it possible? I have volwheel and wicd-client down there full-time and they aren't the best looking icons around. Last edited by herrvideman (2010-09-06 04:15:01)

  • Numeric to hex conversion

    Hi i am new to labview. i have implemented a controller circuit and serially communicating with using lab view in that i am using a numeric value and converting it to hex using numeric to hex string and receiving that on port 1 of controller but that