@ManyToOne with Composite Id with AUTO increment

Hi ,
Below is scenario where i am facing issue. Please let me know your suggestions.
Tables :
OriginalWork - original_work_id, other columns
Subwork - original_work_id, seq_number, other columns
primary key (original_work_id, seq_number) -- composite key
original_work_id in subwork needs to populated from original_work_id in OriginalWork
and
seq_number must be incremented by 1 automatically.
OriginalWork can have many Subwork
(one to many)
Configurations in subwork :
@Id
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name=" original_work_id ")
private Originalwork originalwork;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long seq_number;
I tried using embeddedId , but did not work.
The above configuration is not working and exception is java.sql.SQLSyntaxErrorException: ORA-02289: sequence does not exist
This is not thing do with the privileges as I am able to access the sequence.
Please clarify.
Thanks.

I think you might be jumping ahead here, as the exception states there is a problem with sequencing - not the ManyToOne relationship. First step would be to find out which entity has the issue with sequencing - is it OriginalWork or SubWork. You might try a simple test where both have a simple pk using sequencing. I don't think it is the Subwork entity, as per http://wiki.eclipse.org/EclipseLink/Examples/JPA/PrimaryKey generation mode auto should default to Table sequencing in EclipseLink - the error would be different.
Looking at the model, this should work as long as Subwork has either an embeddedId class or a PK class defined. Best bet since you are using a relationship mapping in the composite PK is to use a PK class with a long seq_number; and long originalwork; assuming OriginalWork's id is of type long as well.
Best Regards,
Chris

Similar Messages

  • CMP with auto-increment primary key.Please help

    Hi all,
    I new with EJB technology so please bear with me.
    Env: 2k Server, SQL 2k Server
    Sun One(Forte EE) to develop and deploy CMP
    I got the servlet to load the data from CMP's business mehods
    is fine. Calling the findPrimaryKey is OK too. Even when I try to insert the row into DB is OK. At this time I make key PK is int AND NOT
    AUTO INCREMENT everything is OK. In the ejbCreate method
    I called setPK, setName ...It's fine.
    The problem comes when I try to make the PK(still int) to be auto-increment field.In ejbCreate not call setPK because of in SunOne IDE, under the J2EE RI tab of EJB Module property, the Auto generate SQL I set to false so that I can
    modify the SQL statement under SQL Deployment.createRow not taking the PK. I thought that will do it but it doesnot like it at all (I got Exception with transaction rollback)I just want to insert a single row with ID and name that's all.
    Then I changed the SQL statment take PK and changed the Auto Generate SQL to True and in ejbCreate the PK as one of the args and called setPK this time with null object. It doesn't like neither.(Exception Cannot set the primary key with null. That is reasonable.)
    I thought using EJB fast and clean technique would help developer to develop application with easiness.
    So I realy stuck with this, I wonder ejb 2.0 support for auto increment at all because I would like to take advantage of the auto increment feature of the DB without writing the PrimaryKeySequence generator at all.
    Am I missing something with this? May be just config thing to tell
    that my PK is auto-increment field so that when the ejbCreate called it knows not taking the PK or even not asking to call setPK in ejbCreate.
    Any help would appreciated.

    Check out this thread, there's a bunch of good info:
    http://www.theserverside.com/patterns/thread.jsp?thread_id=4976

  • LINQ: Update a column with auto increment value

    Hi All,
    Greetings.
    I am very new to C# (though with lot of experience in VC++). Now a days, I am engaged in a C# project where I need to deal with ADO.NET DataTable and related classes. I am stuck up in a scenario as follows:
    I have a data table (of DataTable type) pre-populated with many rows (50000+), parsed from a log file. Now I need to add a column that will be holding index number for each records; eg. 1, 2, 3......
    I have tried to add the auto-incremented column dynamically, with seed = 0 and increment = 1, but it is not working.
    Is there any LINQ query that I can run to update the DataTable at once? Or foreach loop per DataRow is the only option here?
    I appreciate any quick suggestion on this.
    Thanks in advance.
    Sanjoy Jana.

    You should add the auto increment column to the DataTable before you pouplate it with the other data:
    //1. Create a datatable
    DataTable dt = new DataTable();
    //2. add the autoincrement column:
    DataColumn column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.AutoIncrement = true;
    column.AutoIncrementStep = 1;
    column.AutoIncrementSeed = 1;
    //3. Fill the dataTable using an SqlDataAdapter or whatever
    dt.Columns.Add(new DataColumn("name"));
    dt.Rows.Add("1");
    dt.Rows.Add("2");
    dt.Rows.Add("3");
    dt.Rows.Add("4");
    Then you don't have to add the "auto incremented" values yourself in some kind of a loop (using for example LINQ or foreach).
    If you want to know how to poplulate the DataTable from a database query using an adapter, please refer to the following page:
    http://www.dotnetperls.com/sqldataadapter
    Hope that helps.
    Please remember to mark helpful posts as answer to close your threads and then start a new thread if you have a new question.

  • Insert data into Access with Auto-Increment column

    Is there anyone out there that has come across this problem I am experiencing?
    I have a form I'm trying to submit to an Access DB that has an Auto-Incremented Table Column. I have followed Stefan Cameron's instructions to a "T" on his blog page here:
    http://forms.stefcameron.com/2006/09/18/connecting-a-form-to-a-database/
    but I keep getting the following error"
    GeneralError: Operation failed.
    XFAObject.open:10:XFA:form1[0]:mysubform[0]:myEIFform[0]:overflowLeader[0]:Submit[0]:click
    open operation failed. [Microsoft][ODBC Microsoft Access Driver] Number of query values and destination fields are not the same.
    My OLEDB Connection Record Source is the SQL Query which reads: SELECT FedTaxID, LegalID FROM dbtest; My simple test DB is Access and its only 3 columns; dbID, FedTaxID, LegalID. dbID is the Auto-Incremented Column.
    If I remove the Auto column from my DB table it inserts just fine but I get this error:
    GeneralError: Operation failed.
    XFAObject.open:10:XFA:form1[0]:mysubform[0]:myEIFform[0]:overflowLeader[0]:Submit[0]:click
    ado2xfa operation failed. Item cannot be found in the collection corresponding to the requested name or ordinal.
    I've looked over alot of the blogs and other help forums and there's info on Selects, I don't find much on Inserts.
    Can anyone direct me in the right direction? Thank you.

    First, please pay attention to the forum in which you are posting.  This particular post would be more appropriate to tsql rather than datamining.  Second, what specific problem are you trying to solve.  The code you posted appears to be
    correct.  I will say that your DataTable will likely be a source of future problems if it contains only the 2 columns.

  • When opening an InfoPath form InfoPath states "list does not exist" in production, opens fine in test. NaN issue with Auto Increment

    Hello all. I have an InfoPath form that opens from the test server fine. However, when I try to open it in Production I receive the following SOAP response.
    "The SOAP response indicates that an error occurred on the server:
    Server was unable to process request. ---> List does not exist.
    The page you selected contains a list that does not exist.  It may have been deleted by another user. ---> List does not exist.
    The page you selected contains a list that does not exist.  It may have been deleted by another user."
    I am trying to fix an auto generated form field for the web part that runs the my Project Management list. In test the increment by 1 works fine. I.E. "LEAD-2015-5". In Prod the list is returning NaN ( Not a Number ) for each project
    id. I.E. "LEAD-2015-NaN"
    The list is in Standard View when I edit the web part/page.
    Any help is much appreciated. As a developer I despise SharePoint, but I have to do what I have to do! :)

    Hello,
    If you are trying to get max item id from list then it returns "NaN" if there is no item. If you have items in prod list then open your form in IP designer and check the data connection. Make sure that all data connection links are referring to
    prod links.
    Also make sure that user is having at least read permission to that list to access data so verify this also.
    Let us know your result
    Hemendra:Yesterday is just a memory,Tomorrow we may never see<br/> Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • CMP with Auto-increment Primary Key problem

    I'm trying to set a column as IDENTITY in PointBase and have the app server utilize this in the CMP beans. I followed the instructions from the tutorial:
    - In the deployment descriptor, the primary key class is defined as a java.lang.Object. The primary key field is not specified.
    - In the home interface, the argument of the findByPrimaryKey method must be java.lang.Object.
    - In the entity bean class, the return type of the ejbCreate method must be a java.lang.Object.
    Below is (a fragment of) my deployment descriptor:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    <display-name>CMPModule</display-name>
    <enterprise-beans>
    <entity>
    <display-name>DocState</display-name>
    <ejb-name>DocState</ejb-name>
    <home>com.sun.itstar.j2ee.projectdocmgt.ejb.DocStateHome</home>
    <remote>com.sun.itstar.j2ee.projectdocmgt.ejb.DocState</remote>
    <local-home>com.sun.itstar.j2ee.projectdocmgt.ejb.LocalDocStateHome</local-home>
    <local>com.sun.itstar.j2ee.projectdocmgt.ejb.LocalDocState</local>
    <ejb-class>com.sun.itstar.j2ee.projectdocmgt.ejb.DocStateBean</ejb-class>
    <persistence-type>Container</persistence-type>
    <prim-key-class>java.lang.Object</prim-key-class>
    <reentrant>False</reentrant>
    <abstract-schema-name>DocState</abstract-schema-name>
    <cmp-field>
    <field-name>name</field-name>
    </cmp-field>
    <cmp-field>
    <field-name>description</field-name>
    </cmp-field>
    <cmp-field>
    <field-name>color</field-name>
    </cmp-field>
    </entity>
    In the admin-serv/logs directory I get the follow message (bad place for the logs, took me a while to find where it was putting it!):
    [24/Sep/2002:16:33:57] WARNING ( 4165): Validation error in bean DocumentType: Warning: All primary key columns in primary table DOCUMENT_TYPE of the bean corresponding to the generated class com.sun.itstar.j2ee.projectdocmgt.ejb.DocumentTypeBean_387898907_JDOState must be mapped to key fields.
    Map the following primary key columns to key fields: DOCUMENT_TYPE.ID. If you already have fields mapped to these columns, verify that they are key fields.

    Great! This worked. Here are some clear steps:
    1. delete the field from the CMP
    2. delete any business methods that you might have for the field
    3. go to the properties of the bean, find the primary key property. Set the property to Unkown Primey Key Class (java.lang.Object)
    Now there is a bigger problem. CMR fields. In ejbPostCreate() the bean gets its own pk and looks up other related beans. Now that I have removed the accessor to the pk field (and the pk field from the bean), how do I lookup the relationships?
    I need some method that I can call from within ejbPostCreate() that will return the primary key...
    I tried adding the field back in but not as the primary key. That generated an exception that said you cannot do that. If the field is the pk it must be marked as the pk.
    Any ideas?

  • Problem with Auo Increment field in Database table

    HI...
    I have a table with Auto increment field.
    I am using Sql Server 2000.
    I have a Table Component on front end which is binded with that (auto increment) table.
    When I call commitChanges() I receive following exception :
    Exception Details:  java.lang.RuntimeException
      Number of conflicts while synchronizing: 1 SyncResolver.INSERT_ROW_CONFLICT row 2 [sunm][SQLServer JDBC Driver][SQLServer]Cannot insert explicit value for identity column in table 'Authorization_Book' when IDENTITY_INSERT is set to OFF.Anybody knows the solution...

    The following excerpts are from http://blogs.sun.com/roller/page/jfbrown?entry=using_creator_to_insert_into. Do they help?
    What about IDENTITY or AUTOINCREMENT or other database-generated columns?
    This is highly database dependent. Some databases require you to obtain the key through vendor-specific means. Others say "set the value to null". Some say to not include the column in the INSERT statement.
    So how do I exclude my IDENTITY or other column from the INSERT statement?
    Use the RowSet's advanced insertableColumns property. Create a boolean[] array with one value for each column in the result. Use true to include the column in the INSERT statement, otherwise use false. The RowSet's property sheet doesn't allow you to set this property (in Creator2-EA2), so set the property in your java code.

  • Primary key column auto increment

    Hello,
    In my Azure SQL Database I noticed that weird thing is happening. I have table with primary key column with auto increment, and all works fine, on new insert that value automatically increment, but every now and then, that value, for no reason, increments
    for 1000.
    For instance i have in DB values in this order: 1, 2, 3, 4, 1001, 1002, 1003, 2004,  2005, 3001, 3002...
    Why is this happening? 

    Hello ,
    you can see this thread :
    http://stackoverflow.com/questions/17012339/windows-azure-sql-database-identity-auto-increment-column-skips-values
    It's seems that SQL Server work with sequence and block 1000 values. In the cloud, your SQL Azure Database can be move from one server to an other or restarted and so a new sequence is used. That's why you jump from 4 to 1001.
    Regards

  • Creating auto increment custom metadata field in UCM

    Hello,
    Can anyone tell how to create a metadata Integer field with Auto Increment option?
    Also while creating users, I have a custom Department field. I want this field to be displayed in my profile. How can i achieve this?
    Richa

    SHort of paying someone else to do the work for you I am afraid there is no shortcut.
    However writing a component need not be difficult or complex if you take a sensible approach.
    There are some excellent blogs out there, at least one comprehensive book and even the documentation will get you started
    http://download.oracle.com/docs/cd/E10316_01/cs/cs_doc_10/documentation/developer/sdk_getting_started_10en.pdf
    I recommend you get Bex's book and you should be able to get a new component like this up and running in a day or two.
    Tim

  • Query on default serial(1) (auto increment)

    Hi all,
    1. is there a max integer value, when we create/add a column of type INTEGER?
    if yes,
    2. what happens when column value reaches that value?
        - does it starts from 1 again or what happens?
         Because, i want to create a table with a column of type INTEGER and it is enabled with auto increment and it is primary key. If i delete all rows(say, 100 rows) and insert values into it, it starts with 101... so i was wondering whether it starts with 1 again? or i should change the type of the column to some other type(VARCHAR()).
    thank you,
    regards,
    sudhir.

    hi
    try this sentence:
    ALTER TABLE schemaname.tablename COLUMN colname DROP DEFAULT;
    this eliminate default value and this recreate that value
    ALTER TABLE schemaname.tablename COLUMN colname ADD DEFAULT SERIAL (integer value);
    good luck

  • Auto increment with collection is not working

    I am using KODO 3.0 with MYSQL 4.0.16. I have created two JDO object as
    follows
    BankAccount contains a collection of Contacts object. My metadata looks
    like this
    <class name="BankAccount">
    <field name="contacts">
    <collection element-type="Contacts"/>
    <extension vendor-name="kodo" key="element-dependent"
    value="true"/>
    </field>
    </class>
    <class name="Contacts" objectid-class="Contacts$contactId">
    <field name="contactId" primary-key="true">
    <extension vendor-name="kodo" key="jdbc-auto-increment"
    value="true"/>
    </field>
    </class>
    There is no problem in the persisting of BankAccount object and adding
    Contacts to it, but Contacts collation is not retrieved along with parent
    object. In the database join table, the contact Id value it is always set
    to null.
    Things are working well with out contact id in Contacts.
    Can anyone help?
    Regards,
    dharmi

    Set the following property:
    kodo.jdbc.AutoIncrementConstraints: true
    Described here:
    http://www.solarmetric.com/Software/Documentation/latest/docs/ref_guide_pc_oid.html#ref_guide_pc_oid_pkgen_autoinc

  • How can I use a mySQL database schema with numeric auto increment primary key instead of GUID?

    Hello!
    I'm using the TestStand "MySQL Insert (NI)" database schema with GUID as primary key. So everything works fine.
    But I prever using numeric values as primary key, because the database is in conjunction with another database which uses numeric values as primary key.
    Is this possible?
    Has anyone an idea how I can modify the "Generic Recordset (NI)" for use with MySQL?
    Thanks!
    Configuration:
    Microsoft Windows XP
    TestStand 3.1
    MySQL 4.1.12a
    MySQL ODBC 3.51 Driver
    Brosig

    Adam -
    The TestStand Database Logging feature does not allow you to run a separate SQL command after executing the command for a statement(table), so I do not think that you can use an auto incrementing column for the tables. There is just no way to get it back in a generic way. One option that I tried is something similar to the Oracle schema where you call a store procedure to return a sequence ID for each record that you want to add.
    So you would have to create the following sequence table in MySQL:
    CREATE TABLE sequence (id INT NOT NULL);
    INSERT INTO sequence VALUES (0);
    Then create a stored procedure as shown below that will increment the sequence value and return it in a recordset:
    CREATE PROCEDURE `getseqid`()
    BEGIN
            UPDATE sequence SET id=LAST_INSERT_ID(id+1);
            SELECT LAST_INSERT_ID();
    END
    Then update the MySQL tables to use INT primary and foreign key values, so the TestStand MySQL SQL file to create all tables would have text like this:
    CREATE TABLE UUT_RESULT
     ID    INT  PRIMARY KEY,
    ~
    CREATE TABLE STEP_RESULT
     ID    INT  PRIMARY KEY,
     UUT_RESULT   INT  NOT NULL,
    ~
    Then update the schema primary and foreign key columns in the TestStand Database Options dialog box to be INT to match the table. For the primary key columns, you will have to set the Primary Key Type to "Get Value from Recordset" and set the Primary Key Command Text to "call getseqid()". This will call the stored procedure to determine the next value to use as the ID value.
    Hope this helps...
    Scott Richardson
    National Instruments

  • Hibernate data insertion not working with oracle auto increment

    hi i have created a table and the id is set to auto increment by a sequence trigger pair
    when i manually giving value to id its working fine
    but when i tried without maually giving the id i am getting this error
    org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.pojo.Example
    at org.hibernate.id.Assigned.generate(Assigned.java:33)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
    at hibernetsample.Main.main(Main.java:30)

    >
    hi i have created a table and the id is set to auto increment by a sequence trigger pair
    when i manually giving value to id its working fine
    but when i tried without maually giving the id i am getting this error
    org.hibernate.id.Assigned
    >
    That is because you are using the hibernate 'assigned' generator which, by definition
    >
    lets the application to assign an identifier to the object before save() is called.
    This is the default strategy if no <generator> element is specified.
    >
    For your use case you can use the 'sequence' generator.
    The valid generator options and one way to use a sequence generator is shown in this article
    http://www.hibernate-training-guide.com/identifiers-generators.html
    The hibernate section of this article also uses a trigger with sequence generator
    http://blog.lishman.com/2009/02/auto-generated-primary-keys-in-oracle.html
    You should check the hibernate documention and tutorial for examples or search 'hibernate generator sequence example'

  • Auto-Increment a UDF with correct format

    Hope someone can help.
    I am trying to auto-increment a UDF and everytime I do it SAP seems to be reformating it incorrectly.
    Here is the query:
    SELECT CAST(MAX(T.[U_UPC]) as numeric)+1
    FROM RDR1 T
    The results should look like 12345678
    But instead SAP places a value of 12,345,678.00
    I have tested this is SQL by itself and it works fine but when I make it into a Formatted Search in SAP it adds the commas and decimal places.
    Thanks in Advance,
    Craig

    Really close,
    Here is what I have.
    I started out with 84573410001
    I need to increment the last 5 digits by 1 each time the formated search is used.
    So next the number should be 84573410002, 84573410003, 84573410003, etc....
    Edited by: Craig Spehar on May 18, 2009 4:25 PM

  • Creating an auto incrementing field with CREATE TABLE from Java

    I'm using the "sun.jdbc.odbc.JdbcOdbcDriver" to get a connection towards an ODBC data source that's linked to a Access (.mdb) database.
    I've tried various combinations in my CREATE TABLE statement execution in order to create a table with an auto incrementing integer but neither of them work, not even the most obvious one:
    stmt.executeUpdate("CREATE TABLE mytable(uid integer AUTO_INCREMENT PRIMARY KEY);");
    I always get this runtime exception: *java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in field definition*; and AUTO_INCREMENT is the problem. I've tried all variations like AUTO, INCREMENT, AUTOINCREMENT and such, but nothing works.
    I've looked everywhere but couldn't find an answer to this. Thanks for the help.

    You used MySQL syntax. I think you agree with me that Access isn't a MySQL database. Either use MySQL with a real JDBC driver (recommended) or use Access syntax.
    That said, creating databases and tables using Java is a bad idea. The database and table must be already there. With Java you just do the usual table operations like select, insert, update and delete. Nothing more is needed.

Maybe you are looking for

  • One-way video chat failure

    How do I set up one way video chat between iChatAV and AIM Pro on a PC? I'm using the Mac and iChat, and my buddy is using AIM Pro on Microsoft Windows. I'm the one with the camera (which is the built-in one on my MacBook). No Camera on the PC but st

  • Adapter Cache refresh doen't work with XI3.0

    Hi, We are running XI 3.0 / Oracle 9.2 on Linux SUSE SLES8 and we have a problem with the Cache refresh of the adapters. Somehow the status of the cache remains 'Red', without an error message. Anyone any ideas? Björn

  • Blu Ray Burned in Encore CS4 play audio but no video

    I've burned this project multiple times and everytime I get the menus and the audio, but no video when played on a Blu Ray player. The same disc plays fine in computer/laptop. And when I tried a shorter version of the project (10 minutes vs. an hour

  • My photos aren't backing up to my PC since iOS 7 update

    I've checked everything and everywhere and it appears my photos aren't being backed up to my PC since I upgraded to iOS 7 or shortly thereafter. Possibly since the 7.0.2 update? The date of the last picture was 10/07/2013. What is in my photo stream

  • Report T.code for LS1,Ls2,Ls4,Ls8

    hii..... by which t,code we can see the report about ls1,ls2,ls4 ,ls8.pls tell me standard t.code to see the reports. Thanks & Regards Rekha Sharma