Two objects from one table

My current setup is two tables and two objects with a one to one relationship between them, Object and ObjectMD (metadata).
Not sure why my predecessors set it up like this but...that's how it is.
The problem is that my Object table (and thus ObjectMD also) has reached 40 million rows and large joins between Object and ObjectMD are taking forever and are completely unnecessary.
I want to import the ObjectMD data into the Object table and go forward with a single table. The problem is that the ObjectMD table has it's own java surrounding it and that code is used in way too many places to weed it out. I need to leave the Java object structure in place.
I think I should be able to create both these objects from a single table, but I can not figure out the descriptor. My set method needs to be getMetaData().setMethod, but of course TL's reflection doesn't like this. I suppose I could create new methods in Object to get/set all these fields and just forward them to the real methods.
How can I define descriptors to create two objects from a single table?

What I decided on for my last problem was to use a method to setBar, and inside that method, set the Foo of the Bar.
Here are my files for future reference:
--------------------------------------Foo.java-------------------------------------
public class Foo {
     public int id;
     public String first;
     public Bar bar;
     public void setBar(Bar newBar){
          if(newBar != null){
               newBar.foo = this;
          this.bar = newBar;
--------------------------------------Bar.java-------------------------------------
public class Bar {
     public Foo foo;
     public String second;
--------------------------------------Descriptors.java-------------------------------------
public class Descriptors {
     public static void addDescriptors(Project project) {
project.addDescriptor(Descriptors.buildFooDescriptor());
project.addDescriptor(Descriptors.buildBarDescriptor());
private static Descriptor buildFooDescriptor() {
Descriptor descriptor = new Descriptor();
//     basic information
descriptor.setJavaClass(Foo.class);
descriptor.addTableName("FOO");
descriptor.setPrimaryKeyFieldName("ID");
//     mappings
DirectToFieldMapping directToFieldMapping;
AggregateObjectMapping aggregateObjectMapping;
//     id mapping
directToFieldMapping = new DirectToFieldMapping();
directToFieldMapping.setAttributeName("id");
directToFieldMapping.setFieldName("ID");
descriptor.addMapping(directToFieldMapping);
//     first mapping
directToFieldMapping = new DirectToFieldMapping();
directToFieldMapping.setAttributeName("first");
directToFieldMapping.setFieldName("FIRST");
descriptor.addMapping(directToFieldMapping);
//     bar mapping
aggregateObjectMapping = new AggregateObjectMapping();
aggregateObjectMapping.setAttributeName("bar");
aggregateObjectMapping.setReferenceClass(Bar.class);
aggregateObjectMapping.setSetMethodName("setBar");
aggregateObjectMapping.dontAllowNull();
descriptor.addMapping(aggregateObjectMapping);
return descriptor;
private static Descriptor buildBarDescriptor() {
Descriptor descriptor = new Descriptor();
// basic information
descriptor.descriptorIsAggregate();
descriptor.setJavaClass(Bar.class);
//     mappings
DirectToFieldMapping directToFieldMapping;
//     second mapping
directToFieldMapping = new DirectToFieldMapping();
directToFieldMapping.setAttributeName("second");
directToFieldMapping.setFieldName("SECOND");
descriptor.addMapping(directToFieldMapping);
return descriptor;
----------------------------------------Go.java------------------------------------
public class Go {
     public static void main(String[] args) {
          if(args.length != 0){
               throw new RuntimeException("Arguments are not supported");
          Project project = new Project();
          project.setName("fooBarProject");
          DatabaseLogin login = new DatabaseLogin();
     login.usePlatform(new Oracle9Platform());
     login.setDriverClassName("oracle.jdbc.driver.OracleDriver");
     login.setConnectionString("jdbc:oracle:thin:@nnn.nnn.nnn.nnn:nnnn:SERVICE");
     project.setDatasourceLogin(login);
     Descriptors.addDescriptors(project);
     Server server = project.createServerSession(2, 2);
     server.setLogLevel(oracle.toplink.sessions.SessionLog.FINE);
     server.login("schema", "password");
     Session session = server.acquireClientSession();
     UnitOfWork uow = session.acquireUnitOfWork();
     Foo fooBar = (Foo) uow.newInstance(Foo.class);
     fooBar.id = (int) (Math.random() * 10000);
     fooBar.first = "abcd";
     uow.commit();
     ExpressionBuilder builder = new ExpressionBuilder();
     Foo fooBarLoad = (Foo) session.readObject(Foo.class, builder.get("id").equal(fooBar.id));
     System.out.println("ID:" + fooBarLoad.id + " FIRST:" + fooBarLoad.first + " SECOND:" + fooBarLoad.bar.second );
     session.release();
     server.logout();
------------------------------------------------------------------------------------------

Similar Messages

  • What is the prerequisite for creating two hierarchies from one fact table i

    Hi,
    what is the prerequisite for creating two hierarchies from one a single fact table.
    Rgds,
    Amit

    create global temporary table t1 as select * from trn_ordbase on commit preserve rows;You CANNOT use this syntax.
    http://download-east.oracle.com/docs/cd/B19188_01/doc/B15917/sqcmd.htm
    http://download-east.oracle.com/docs/cd/B19188_01/doc/B15917/glob_tab.gif
    http://download-east.oracle.com/docs/cd/B19188_01/doc/B15917/cre_tabl.gif

  • Adding Data From One Table to Another

    Now, this doesn't strike me as a particularly complex problem, but I've either strayed outside the domain of Numbers or I'm just not looking at the problem from the right angle. In any case, I'm sure you guys can offer some insight.
    What I'm trying to do is, essentially, move data from one table to another. One table is a calendar, a simple two column 'date/task to be completed' affair, the other is a schedule of jogging workouts, i.e, times, distances. Basically, I'm trying to create a formula that copies data from the second table onto the first but only for odd days of the week, excepting Sundays (and assuming Monday as the start of the week). Now, this isn't the hard part, I can do that. The problem comes when I replicate the formula down the calendar. Even on the days when the 'if' statement identifies it as an 'even day', the cell reference to the appropriate workout on the second table is incremented, so when it comes to the next 'odd day', it has skipped a workout.
    I can't seem to see any way of getting it to specifically copy the NEXT line in the second table, and not the corresponding line.
    This began as a distraction to try and organise my running so I could see at a glance what I had to do that day and track my progress, but now it's turned into an obsession. SURELY there's a solution?
    Cheers.

    Hi Sealatron,
    Welcome to Apple Discussions and the Numbers '09 forum.
    Several possible ways to move the data occur to me, but the devil's in the details of how the data is currently arranged.
    Is it
    • a list of three workouts, one for each of Monday, Wednesday and Friday, then the same three repeated the following week?
    • an open-ended list that does not repeat?
    • something else?
    Regards,
    Barry

  • Insert old missing data from one table to another(databaase trigger)

    Hello,
    i want to do two things
    1)I want to insert old missing data from one table to another through a database trigger but it can't be executed that way i don't know what should i do in case of replacing old data in table_1 into table_2
    2)what should i use :NEW. OR :OLD. instead.
    3) what should i do if i have records exising between the two dates
    i want to surpress the existing records.
    the following code is what i have but no effect occured.
    CREATE OR REPLACE TRIGGER ATTENDANCEE_FOLLOWS
    AFTER INSERT ON ACCESSLOG
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE
    V_COUNT       NUMBER(2);
    V_TIME_OUT    DATE;
    V_DATE_IN     DATE;
    V_DATE_OUT    DATE;
    V_TIME_IN     DATE;
    V_ATT_FLAG    VARCHAR2(3);
    V_EMP_ID      NUMBER(11);
    CURSOR EMP_FOLLOWS IS
    SELECT   EMPLOYEEID , LOGDATE , LOGTIME , INOUT
    FROM     ACCESSLOG
    WHERE    LOGDATE
    BETWEEN  TO_DATE('18/12/2008','dd/mm/rrrr') 
    AND      TO_DATE('19/12/2008','dd/mm/rrrr');
    BEGIN
    FOR EMP IN EMP_FOLLOWS LOOP
    SELECT COUNT(*)
    INTO  V_COUNT
    FROM  EMP_ATTENDANCEE
    WHERE EMP_ID    =  EMP.EMPLOYEEID
    AND    DATE_IN   =  EMP.LOGDATE
    AND    ATT_FLAG = 'I';
    IF V_COUNT = 0  THEN
    INSERT INTO EMP_ATTENDANCEE (EMP_ID, DATE_IN ,DATE_OUT
                                ,TIME_IN ,TIME_OUT,ATT_FLAG)
         VALUES (TO_NUMBER(TO_CHAR(:NEW.employeeid,99999)),
                 TO_DATE(:NEW.LOGDATE,'dd/mm/rrrr'),       -- DATE_IN
                 NULL,
                 TO_DATE(:NEW.LOGTIME,'HH24:MI:SS'),      -- TIME_IN
                 NULL ,'I');
    ELSIF   V_COUNT > 0 THEN
    UPDATE  EMP_ATTENDANCEE
        SET DATE_OUT       =  TO_DATE(:NEW.LOGDATE,'dd/mm/rrrr'), -- DATE_OUT,
            TIME_OUT       =   TO_DATE(:NEW.LOGTIME,'HH24:MI:SS'), -- TIME_OUT
            ATT_FLAG       =   'O'
            WHERE EMP_ID   =   TO_NUMBER(TO_CHAR(:NEW.employeeid,99999))
            AND   DATE_IN <=  (SELECT MAX (DATE_IN )
                               FROM EMP_ATTENDANCEE
                               WHERE EMP_ID = TO_NUMBER(TO_CHAR(:NEW.employeeid,99999))
                               AND   DATE_OUT IS NULL
                               AND   TIME_OUT IS NULL )
    AND   DATE_OUT  IS NULL
    AND   TIME_OUT IS NULL  ;
    END IF;
    END LOOP;
    EXCEPTION
    WHEN OTHERS THEN RAISE;
    END ATTENDANCEE_FOLLOWS ;
                            Regards,
    Abdetu..

    INSERT INTO SALES_MASTER
       ( NO
       , Name
       , PINCODE )
       SELECT SALESMANNO
            , SALESMANNAME
            , PINCODE
         FROM SALESMAN_MASTER;Regards,
    Christian Balz

  • Inserting data from one table into another table using PL/SQL

    HI,
    I am trying to insert values from one table into another using PL procedure, the values I want to retrieve from the table riverside1 are charac_id and charac_type and insert these values into another table called riverside2 , the stored procedure zorgs_gorfs(x,y) accepts two parameters which are 2 charac_id's of d characters in riverside1 then using insert statements inserts these characters from riverside1 into riverside2.
    CREATE OR REPLACE PROCEDURE zorgs_gorfs(x IN NUMBER, y IN NUMBER) AS
         BEGIN
              INSERT INTO riverside2
                   (charac_id)
              VALUES
                   (x);
    INSERT INTO riverside2
                   (charac_id)
              VALUES
                   (y);
          END zorgs_gorfs;
    /This works but the problem im having is that when I also try to insert the charac_type as well as the charac_id it doesnt work below is the code:
    CREATE OR REPLACE PROCEDURE zorgs_gorfs(x IN NUMBER, y IN NUMBER) AS
         BEGIN
              INSERT INTO riverside2
                   (charac_id,charac_tye)
              VALUES
                   (Select
                        charac_id,
                        charc_type
                   FROM
                        riverside1
                   WHERE
                        charac_id = x);
          END zorgs_gorfs;
    /can someone kindly sort me out

    modify this sql
    INSERT INTO riverside2
                   (charac_id,charac_tye)
              VALUES
                   (Select
                        charac_id,
                        charc_type
                   FROM
                        riverside1
                   WHERE
                        charac_id = x);as
    INSERT INTO riverside2
                   (charac_id,charac_tye)
              VALUES
                   (Select
                        charac_id,
                        charc_type
                   FROM
                        riverside1
                   WHERE
                        charac_id in ( x,y));But my suggestion would be consider revising your approach. It does not look that good.
    Thanks,
    karthick.

  • How to get the data from one table and insert into another table

    Hi,
    We have requirement to build OA page with the data needs to be populated from one table and on save data into another table.
    For the above requirement what the best way to implement in OAF.
    I understand that if we attach VO object instance to region/page, we only can pull and put data in to only one table.
    Thanks

    You can achieve this in many different ways, one is
    1. Create another VO based on the EO which is based on the dest table.
    2. At save, copy the contents of the source VO into the dest VO (see copy routine in dev guide).
    3. commiting the transaction will push the data into the dest table on which the dest VO is based.
    I understand that if we attach VO object instance to region/page, we only can pull and put data in to only one table.
    if by table you mean a DB table, then no, you can have a VO based on multiple EOs which will do DMLs accordingly.Thanks
    Tapash

  • Flowing data from one Table to another

    I am new to Numbers and I am having a hard time figuring out how to flow a sum from one table into another table. Is this possible? Please help.
    Thanks
    E

    lassiegirl wrote:
    I am new to Numbers and I am having a hard time figuring out how to flow a sum from one table into another table. Is this possible? Please help.
    Hi lassiegirl,
    Welcome to Apple Discussions and the Numbers '09 forum.
    Apple provides two excellent resources that I recommend be downloaded by all Numbers users, the Numbers '09 User Guide and the iWork Formulas and Functions User Guide. You'll find linke for both of them in the Help menu in Numbers.
    The first will give you an overview of Numbers and how it works—spend some time with the preface and the first chapter, browse the rest on a need to know basis when you're doing something new. The second is a reference, useful when you're trying to write a formula.
    To your question...
    You can copy the sum from one table to another.
    For the example formula beow, both Table 1 and Table 2 have one header row and one footer row, and a total of 21 rows each.
    If the SUM on Table 1 is in cell C21, and you want to include it in the SUM of column C in Table 2, you could transfer the sum to C1 in the header row of Table 2 with:
    C1:  =Table 1::C21
    In C21 of Table 2 (a Footer row), use any of these formulas:
    =SUM(C)+C1
    =SUM(Table 1::C)+SUM(C)
    =SUM(Table 1 :: C,C)
    The first calculates the sum of the cells in column C (of its own table—Table 2) and adds the value in C1, the total transferred from Table 1.
    The second returns the same result by calculating the sums of the two columns separately, then adding those sums.
    The third takes the single arguments of the two SUM statements in the second, and lists them as multiple arguments in a single SUM statement.
    Regards,
    Barry

  • How give a data from one table to another table

    Oracle forms6i
    Hai All
    I had two table in table data base and from one table the data has to move to another table using forms
    The two tables are
    First table name temp_att from this the data has to move and the data are
    BARCODE BARDATE BARTIME Row_number
    0000000009949296 08-NOV-09 0800 1
    0000000009949296 08-NOV-09 1230 2
    0000000009949296 08-NOV-09 1245 3
    0000000009949296 08-NOV-09 1645 4
    0000000009949297 08-NOV-09 0815 1
    0000000009949297 08-NOV-09 1230 2
    0000000009949297 08-NOV-09 1300 3
    0000000009949297 08-NOV-09 1650 4
    Another table dail_att and the fields are
    barcode,bardate,intime(mintime),outtime(maxtime),intrin(nextmintime)intr,(nextmaxtime)
    Pls give some solutions to solve this problem.
    Thanks & Regards
    Srikkanth.M

    Hai
    Could pls explain me little bit clear
    I have explained my problem clearly in the last Post
    This is the requirement
    I had two table in table data base and from one table the data has to move to another table using forms
    The two tables are
    First table name temp_att from this the data has to move and the data are
    BARCODE BARDATE BARTIME Row_number
    0000000009949296 08-NOV-09 0800 1
    0000000009949296 08-NOV-09 1230 2
    0000000009949296 08-NOV-09 1245 3
    0000000009949296 08-NOV-09 1645 4
    0000000009949297 08-NOV-09 0815 1
    0000000009949297 08-NOV-09 1230 2
    0000000009949297 08-NOV-09 1300 3
    0000000009949297 08-NOV-09 1650 4
    Another table dail_att and the fields are
    barcode,bardate,intime(mintime),outtime(maxtime),intrin(nextmintime)intr,(nextmaxtime)
    Pls give some solutions to solve this problem.
    Thanks & Regards
    Srikkanth.M

  • Simple way to insert data from one table

    Hi,
    I need to know a simple way on how to transfer the data from one table to another....
    First table xx_inv_tab1 has three columns col1, col2, col3 and where as second table xx_inv_tab2 has five columns col1, col2, col3, col4, col5.
    Here col2, col3, col4 are the same columns as in table1 xx_inv_tab1...
    Now I want to transfer first table data in to second table .... first column of second table holds a sequence, followed by the first table three columns data and followed with col4 and col5 which will hold NULL values....
    In my scenario, I have 70 - 75 columns in my first table which I want to move to second table which three new columns (one is sequence and other two has null values)...
    Any ideas if we make it in a simplest way rather saying insert into xx_inv_tab2 (col1, col2, col3 ............................................. col75) values (seq, col1, col2..........................col75, null, null)
    Help Appreciated..
    Thanks

    Easy
    untested
    insert into xx_inv_tab2 t2 (col1,col2,col3,col4)
    select yourSequence.nextval, t1.col1, t1.col2, t1.col3
    from xx_inv_tab1 t1
    ;Note that col5 does not need to be used, since you want to fill it with NULL.
    USe excel or sql developer to write you a list of column names, if you are to lazy to write all 75 columns by yourself.
    What might also work:
    untested
    insert into xx_inv_tab2 t2
    select yourSequence.nextval, t1.*, null
    from xx_inv_tab1 t1
    ;Edited by: Sven W. on Aug 31, 2012 4:41 PM

  • Move objects from one tablespace to another

    Hello
    Running Oracle 10g rel 2 and I would like to move all objects from one tablespace to another. There are Primary Key indexes to other tables in this tablespace. The size grew too large and I want to reduce the size.
    Thank you.

    Good afternoom Sir!
    I believe that below "ask tom - moving tables across tablespaces" may help you.
    http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:47812348053
    Regards,
    Marcello M.

  • Moving object from one client to another using transport requests...

    Hi,
    If we want to move one object from one client to another, we go to se09 and release it. I know this. But after release what are the next steps to move it from one system to another ?
    Regards,
    Rajesh

    Hello Rajesh
    If the two systems share a <u>common</u> transport directory then you can simply go to transaction <b>STMS</b>, double-click on the <b>import queue</b> (target system), then choose menu <b>Extras -> Other Requests -> Add.</b>
    The transport request will be added to the import buffer. Next you can import the request.
    If the two systems do not share a common transport directory you can use RFC-enabled function module <b>EPS_FTP_PUT</b> to copy the data and cofile from the source to the target system (check for <b>DIR_TRANS</b> directories using transaction AL11).
    Regards
      Uwe

  • How do I read from one table and write to another identical table?

    I am very new to Oracle. I am trying to do something that should be very simple.
    I am trying to read from one table in SQL and then write to another
    Identically formatted table. I keep getting various errors. Could someone please
    post some vey simple code that will work so that I can play around with it?
    Any help would be greatly appreciated.
    Thanks,
    Ron

    Thanks, but I must be missing something.
    I have two tables, SONGLIST and SETLIST.
    The second line by itself works just fine on either table.
    Here is the code I used following your seggestion, along with it's error message.
    Hope you can help. Thanks again...
    INSERT INTO SETLIST
    SELECT TITLE FROM SONGLIST WHERE ROTATION <> 'X'
    ORA-00947: not enough values

  • Need to compare values in two columns of one table against values in two columns in another table

    Hi, as the title reads, I'm looking for an approach that will allow me to compare values in two columns of one table against values in two columns in another table.
    Say, for instance, here are my tables:
    Table1:
    Server,Login
    ABCDEF,JOHN
    ABCDEF,JANE
    FEDCBA,SEAN
    FEDCBA,SHAWN
    Table2:
    Server,Login
    ABCDEF,JOHN
    ABCDEF,JANE
    FEDCBA,SHAWN
    In comparing the two tables, I'd like my query to report the rows in table1 NOT found in table2. In this case, it'll be the 3rd row of table one:
    Server,Login
    FEDCBA,SEAN
    Thanks.

    create table Table1([Server] varchar(50), Login varchar(50))
    Insert into Table1 values ('ABCDEF','JOHN'),('ABCDEF','JANE'),('FEDCBA','SEAN'),('FEDCBA','SHAWN')
    create table Table2([Server] varchar(50), Login varchar(50))
    Insert into Table2 values ('ABCDEF','JOHN'),('ABCDEF','JANE'), ('FEDCBA','SHAWN')
    select [Server] ,Login from Table1
    Except
    select [Server] ,Login from Table2
    select [Server] ,Login from Table1 t1
    where not exists(Select 1 from Table2 where t1.[Server] = t1.[Server] AND Login=t1.Login)
    drop table Table1,Table2

  • How to convert data when transferring from one table to another

    I have two tables and these are the structure of the tables
    create table E1(
    ID NUMBER
    ,NAME VARCHAR2(30)
    , DESIGNATION VARCHAR2(30)
    ,GENDER VARCHAR2(10));
    create table E2(
    ID NUMBER
    ,NAME VARCHAR2(30)
    , DESIGNATION VARCHAR2(3)
    ,GENDER NUMBER); Now I want to transfer records from one table to another using a master tables where data are compared because the datatypes in tables are different
    The first one is a gender table to match the gender and convert
    create table Gender(
    E1 varchar2(10),
    E2 number);The second is for the designation
    create table Designation(
    E1 varchar2(30),
    E2 varchar2(3);How to match and convert the data so that it can be transfered.

    Peeyush wrote:
    Can we do it with the help of a cursor.
    All SQL executed by the database are parsed as cursors and executed as cursors.
    I mean I have to insert data in bulk and I want to use cursor for it.The read and write (select and insert) are done by the SQL engine. The read part reads data and passes it to the write part that inserts the data.
    Now why would using PL/SQL and bulk processing make this faster? It will reside in-between the read part and the write part being done by the SQL engine.
    So the SQL engine reads the data. This then travels all the way to the PL/SQL engine as a bulk collect. PL./SQL then issues an insert (the write part to be done by the SQL engine). And now this very same data travels all the way from the PL/SQL engine to the SQL engine for insertion.
    So just how is this approach, where you add extra travel time to data, faster?
    and i want to commit the transaction after every 50 recordsWhy? What makes you think this is better? What makes you think you have a problem with not committing every 50 rows?

  • Authorization for all the maintenance views from one table

    I have one table with data related to 5 systems.
    I have created views with related data for each system.
    These all are from one table only. while i am editing in one view, i must be able to edit the another view also. at a time 2 users cant edit the same view but at a time two users have to edit two different viws from same table.
    I have to provide all authorization to all views at the same time.How to achieve this?.
    Thanks.
    Edited by: pagidala Ramesh on Oct 27, 2008 10:52 AM

    Hi Pagidala,
    This is my idea how much it can help you i am not sure but, create txcode for views and assign the authorizations for the txcodes according to your requirements. May be your issue will resolve.
    Cheers!!
    VEnk@

Maybe you are looking for