Cascade delete in database

Hi all,
i've tow entites, TCompte and THisto define as :
public class TCompte {
public class THisto {
@ManyToOne(optional = false)
TCompte theCompte;
}i've persist many instance of each.
when i try to remove an instance of TCompte i got an exception : secondary key constraint violation from table THisto.
So is there an anotation will cascade the remove of and TCompte to all instence of THisto witch reference to TCompte.
best regards.

Hi,
Please check the below annotation for cascade
@OneToMany(cascade=REMOVE, mappedBy="target table")
@ManyToOne(cascade=ALL)
For more reference check this (http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html)
Regards,
P.Vinay Kumar

Similar Messages

  • Cascade or delete in database server, why if my EJB do it for me??

    Hi,
    I am in design phase of a database for my j2EE application. In the database desing i have some relationships entities, that have foreign keys. I have several options about foreign keys in the relationships, cascade deletes, restrict .... all in my database server.
    But, when i am reading the referencial integrity of the entity EJBs CMP relationships, the entity beans make the cascade deletes automaticaly for maintain the relationsships.
    Need i make my relationships in my database server with cascade delete options or leave it for my application server???
    Another one, if i make relationships in my database server, why i need do it in my entity beans???
    tanks, sorry for my poor english

    Hi Markus,
    Tanks for your answer, if this tip only for entity beans with CMP???
    For example, if i have some entity beans, one with CMP and other with JDO, or for example, an entity beans that use CMP and JDO for access to few tables (i dont know that it is possible or it a good design), how can i design the relationships update/delete cascades in my database server, all entity beans persistence types support his referencial integrity ?? if this if true i think that i forget the relationships updates/deletes cascades in my database server.
    At this moment, i dont know what type of persistence i will use in my application server. I dont undertand yet wath approach i must follow, i design my database and after design my entity beans over this database or i must foget my database and beging with entity beans design first .... i have a big problem, i need read a lot of more.
    Something for help me???
    Very, very thanks

  • Let the database doing cascade deletion for privateOwned relationship

    Hi,
    I have two tables: parent, child. I mapped the parent to child as a one-many private owned relationship. The child table have a foreign key reference back to parent table. The constraint is like this
    alter table child add constraint FK_CONSTRAINT foreign key (parentid) reference parent (parentid) on delete cascade;
    I would the cascade deletion is done by database (as it is "on delete cascade" in the constraint) rather by the toplink. (This is exactly what you will do when use JDBC. another reason is that if I let the TopLink do the cascade deletion, I got a deadlock! If I remove the cascade deletion from topLink, I do not have the deadlock).
    Is there anyway I can turn off the cascade deletion from topLink, but at the same side keep the private owned relationship(because it is indeed privately owned)?
    Any help is really appreciated.
    jason

    Setting a no-op sql solves the cascade deletion problem. However, if I really want to remove a child from the parently, I ends up using the same no-op sql. I can not delete child independently.

  • EF database first cascades delete despite cascade is restricted in db and edmx setting End1/2 OnDelete = "None"

    We are developing with Visual Studio 2013, Entity Framework 5, Oracle DB 11 via ODP.NET managed driver.
    The edmx is generated/updated from database (database first). We generate POCO object using standard T4.
    We have 2 tables with a master-detail foreign key relation, one to many. The foreign key in database does _not_ allow cascade deletes, so when you delete master row via SQL, you get error " ... child record found ... ".
    The problem now is:
    In Entity Framework, when i delete a record from the master table, then EF also deletes all corresponding detail records from the detail table! The restriction of the foreign key in database is ignored.
    In edmx diagram, the properies End1 OnDelete / End2 OnDelete are set to "None", so i expect that on delete of a master row, EF should throw an error if detail rows exists.
    How can i disable the cascading of the delete?
    Here is the FK definition in edmx:
            <Association Name="USR_USER_ROLES_ROLES_FK">
              <End Role="USR_ROLES" Type="Self.USR_ROLES" Multiplicity="1" />
              <End Role="USR_USER_ROLES" Type="Self.USR_USER_ROLES" Multiplicity="*" />
              <ReferentialConstraint>
                <Principal Role="USR_ROLES">
                  <PropertyRef Name="GES" />
                  <PropertyRef Name="PROJ" />
                  <PropertyRef Name="ROLE_NAME" />
                </Principal>
                <Dependent Role="USR_USER_ROLES">
                  <PropertyRef Name="GES" />
                  <PropertyRef Name="PROJ" />
                  <PropertyRef Name="ROLE_NAME" />
                </Dependent>
              </ReferentialConstraint>
            </Association> 
     The delete of master row is done by calling:
    ivDbCtx.USR_Roles.Local.Remove(role); // ivDbCtx is the DbContext, USR_Roles is the collection, role is the POCO object to be deleted.
    Thank you very much for your help!
    Udo

    Hello,
    For issues regarding ODP.NET managed driver, I would suggest you posting to oracle entity framework forum:
    https://community.oracle.com/communications
    There are oracle entity framework expects who will help you better.
    Thanks for your understanding.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Cascade delete in container or database schema?

    I am creating a database schema which I want to map EJB CMP Entity Beans onto. There are a number of relationships in the schema where I want to cascade deletion if a parent record is deleted and a number of relationships where I want to prevent deletion of parent records if child records exist for the relationship.
    I am wondering whether it is better to implement this in the database schema (Oracle) or in the container (JBoss 3.2.2)? I believe it is possible to implement cascading delete in the container but I am not sure about preventing delete in the container? Is there a way I could do it programmatically? I want to use CMP though so I'm not sure there would be much scope for that.
    Are there any rules as to which approach is better? Will the container have a problem if I implement it in the database schema? Obviously the ejbRemove may throw an exception if I prevent deletion in a relationship but that is fine. I believe it is not a good idea to implement it in both the container and schema as there will be a conflict when they both try to delete records.
    Thanks.

    Container's cascade-deleting in jboss(tm)3.2.x working properly with any scope:
    This example with 1 scope:
        <relationships>
            <ejb-relation>
                <ejb-relation-name>Region-Town</ejb-relation-name>
                <ejb-relationship-role>
                    <ejb-relationship-role-name>region-has-towns</ejb-relationship-role-name>
                    <multiplicity>One</multiplicity>
                    <relationship-role-source>
                        <ejb-name>RegionBean</ejb-name>
                    </relationship-role-source>
                    <cmr-field>
                        <cmr-field-name>regionTowns</cmr-field-name>
                        <cmr-field-type>java.util.Set</cmr-field-type>
                    </cmr-field>
                </ejb-relationship-role>
                <ejb-relationship-role>
                    <ejb-relationship-role-name>town-belongs-to-region</ejb-relationship-role-name>
                    <multiplicity>Many</multiplicity> <cascade-delete/>
                    <relationship-role-source>
                        <ejb-name>TownBean</ejb-name>
                    </relationship-role-source>
                    <cmr-field>
                        <cmr-field-name>region</cmr-field-name>
                    </cmr-field>
                </ejb-relationship-role>
            </ejb-relation>
        </relationships>

  • Db-cascade-delete for other databases than Oracle?

    I have two entity beans with a one to many relationship. The database designers have implemented a cascading delete between the two tables for the entity beans. How should the deployment descriptors be written for this to work properly? From what I understand I will need to use the <cascade-delete /> tag in ejb-jar.xml and <db-cascade-delete /> in weblogic-cmp-jar.xml. However this document http://e-docs.bea.com/wls/docs81/ejb/entity.html states that <db-cascade-delete /> only works for Oracle, and I'm using DB2. Does this mean that I have to remove the cascading delete in the database and only enable it in ejb-jar.xml, or will <db-cascade-delete /> work for other databases than Oracle?
    /Björn

    To get the certified answer I'd ask a tech support rep. Unofficially, if DB2 supports cascade delete then I would expect that the EJB container will work with that. There are issues surrounding certification of features against specific databases and I'm not up on all of these so I'd check with support.

  • Virtual private database and cascade delete

    We can't secure rows deleted by cascade delete by vpd.
    User "A" have right to delete row "1" but don't have right to delete row "2".
    If user "A" delete row "1", database will delete also row "2" by cascade delete.
    Why it is possible to delete row "2"?

    Either of the two options (a policy that queries the base table or propagating the security columns to the child tables) should work.
    My preference from a data model standpoint would be to have a policy that queries the base table so that the security information can be maintained in exactly one place. But if your application is frequently querying the child tables without reference to the parent table, joining to the parent table, particularly if data volumes are such that an IN would be less than ideal, there may be performance issues to this approach.
    Copying the columns creates a potential data integrity problem-- if you change the security on a base table row, you may forget to change the security on all the child records. But that issue may not be significant if the security is essentially static once the rows are created. And it's definitely easier to tune.
    You may also want to create views that join the parent and child tables and grant users access to these views rather than to the child tables directly, which would allow you to have a single policy on the base table and get most of the benefits of the first option with less performance problems if data volumes make an IN less than ideal.
    Justin

  • Weblogic 9.1, EJB 2.0, Oracle 9i: Cascade delete Error

    Hi All,
    I am facing an error with the cascade-delete facility in ejb2.0 with weblogic 9.1
    Assume that I have the following relation:
    <ejb-relation>
    <ejb-relation-name>TeacherEJB-StudentEJB</ejb-relation-name>
    <ejb-relationship-role>
    <ejb-relationship-role-name>teacher-has-student
    </ejb-relationship-role-name>
    <multiplicity>One</multiplicity>
    <relationship-role-source>
    <ejb-name>TeacherEJB</ejb-name>
    </relationship-role-source>
    <cmr-field>
    <cmr-field-name>teacher</cmr-field-name>
    </cmr-field>
    </ejb-relationship-role>
    <ejb-relationship-role>
    <ejb-relationship-role-name>student-has-teacher
    </ejb-relationship-role-name>
    <multiplicity>Many</multiplicity>
    <cascade-delete/>
    <relationship-role-source>
    <ejb-name>StudentEJB</ejb-name>
    </relationship-role-source>
    <cmr-field>
    <cmr-field-name>student</cmr-field-name>
    <cmr-field-type>java.util.Collection</cmr-field-type><cmr-field>
    </ejb-relationship-role>
    </ejb-relation>
    Now when I have to delete one record from the DBSTUDENT table, what i do is the following:
    StudentHomeLocal.remove(studentModel.getStudentId());
    The above statement throws an SQLException staying it can't update TeacherID in DBSTUDENT (PK of DBTEACHER, FK in DBSTUDENT) with NULL.
    The same code is working perfectly well in Weblogic 8.
    I even tried deleting the local directly by the following statement:
    StudentLocal.remove();
    But this too doesn't work.
    I also tried by removing the <cascade-delete/> attribute from the ejb-jar.xml file and updating the 'on-delete cascade' option in the database, but this too did not work.
    There is another option of <db-cascade-delete> in weblogic-cmp-rdbms-jar.xml that I tried but this too did not work.
    In short, I have tried the following cases but to no avail:
    1. Mention cascade delete in ejb-jar.xml and nothing mentioned in weblogic-cmp-rdbms-jar.xml.jar and in the database.
    2. Mention nothing in ejb-jar.xml and nothing mentioned in weblogic-cmp-rdbms-jar.xml.jar but 'on cascade delete' mentioned in the database.
    3. Mention cascade delete in ejb-jar.xml and db-cascade-delete mentioned in weblogic-cmp-rdbms-jar.xml.jar and 'on cascade delete' in the database.
    4. Remove all cascade delete from the ejb-jar.xml,the weblogic-cmp-rdbms-jar.xml and from the database.
    Neither of the above work.
    Kindly help ASAP.
    Thanks in advance,
    Sachidanand.

    Hi All,
    I am facing an error with the cascade-delete facility in ejb2.0 with weblogic 9.1
    Assume that I have the following relation:
    <ejb-relation>
    <ejb-relation-name>TeacherEJB-StudentEJB</ejb-relation-name>
    <ejb-relationship-role>
    <ejb-relationship-role-name>teacher-has-student
    </ejb-relationship-role-name>
    <multiplicity>One</multiplicity>
    <relationship-role-source>
    <ejb-name>TeacherEJB</ejb-name>
    </relationship-role-source>
    <cmr-field>
    <cmr-field-name>teacher</cmr-field-name>
    </cmr-field>
    </ejb-relationship-role>
    <ejb-relationship-role>
    <ejb-relationship-role-name>student-has-teacher
    </ejb-relationship-role-name>
    <multiplicity>Many</multiplicity>
    <cascade-delete/>
    <relationship-role-source>
    <ejb-name>StudentEJB</ejb-name>
    </relationship-role-source>
    <cmr-field>
    <cmr-field-name>student</cmr-field-name>
    <cmr-field-type>java.util.Collection</cmr-field-type><cmr-field>
    </ejb-relationship-role>
    </ejb-relation>
    Now when I have to delete one record from the DBSTUDENT table, what i do is the following:
    StudentHomeLocal.remove(studentModel.getStudentId());
    The above statement throws an SQLException staying it can't update TeacherID in DBSTUDENT (PK of DBTEACHER, FK in DBSTUDENT) with NULL.
    The same code is working perfectly well in Weblogic 8.
    I even tried deleting the local directly by the following statement:
    StudentLocal.remove();
    But this too doesn't work.
    I also tried by removing the <cascade-delete/> attribute from the ejb-jar.xml file and updating the 'on-delete cascade' option in the database, but this too did not work.
    There is another option of <db-cascade-delete> in weblogic-cmp-rdbms-jar.xml that I tried but this too did not work.
    In short, I have tried the following cases but to no avail:
    1. Mention cascade delete in ejb-jar.xml and nothing mentioned in weblogic-cmp-rdbms-jar.xml.jar and in the database.
    2. Mention nothing in ejb-jar.xml and nothing mentioned in weblogic-cmp-rdbms-jar.xml.jar but 'on cascade delete' mentioned in the database.
    3. Mention cascade delete in ejb-jar.xml and db-cascade-delete mentioned in weblogic-cmp-rdbms-jar.xml.jar and 'on cascade delete' in the database.
    4. Remove all cascade delete from the ejb-jar.xml,the weblogic-cmp-rdbms-jar.xml and from the database.
    Neither of the above work.
    Kindly help ASAP.
    Thanks in advance,
    Sachidanand.

  • Problem with cascade delete and remove bean

    I am working with two entity beans that map to two tables that have a foreign key relationship. Table B has a foreign key to A and in the database that foreign key is set for cascaded updates and cascaded deletes.
    The problem occurs when the the sytem first tries to remove bean 1 (mapped to table A) and then remove bean 2 (mapped to B) where bean 2 is associated with bean 1 with a foreign key relationship. The first remove works but then when it tries to remove bean 2 it throws a very ugly "CORBA TRANSACTION_ROLLEDBACK 9998" Maybe exception. My guess is that the reason is because bean 2's reocrd in the database was deleted when bean 1 was removed but the 'bean object' was not removed from the container.
    When I go into our Application Server and look at how it see's the tables, it show the wrong relationship. It shows a restrict delete and a restrict update realationship.
    My question is, am I wrong to think that this is a application server problem or a configuration problem? It seems to me that attempting to remove a non-existant record should not cause an error. It won't cause any SQL exceptions. Is this a flawed viewpoint? As a work around I made sure that the dependent records are deleted first but it kind of defeats the point of cascaded deletes.
    We have a limited number of support calls, should I use one or am I at fault here?

    If the database removes the record from the second
    table, why is the system trying to remove it once
    again? You should try to remove an entity from a
    single place, should it be the database or the
    application. Don't try to remove it twice.
    Regards,
    DimitarI could do this but it is a huge pain in my ass. The problem is that you might want to remove the dependent bean without removing it's parent. The object structure is a little questionable, I'll admit that. It is, as they say, the eleventh hour and I can't really change that now.
    The way this work is that the server gets a list of objects marked either as new, modified, or deleted. It then relates those changes back to the database.
    In this case we have two lists(which makes me realize where the class structure sucks.) In order to do what you suggest I would have to get all the deleted parent objects and then search all the deleted child objects for ones that have the parent's key in them.
    It would be prefferable to fix the class structure but again this is not an option.
    Anyone want to answer the question I asked?

  • Real-time apply cascaded logical standby database

    Hi
    I have a primary database orcl
    Pysical standby database orcl_std
    Cascaded logical standby database orcl_tri which receives archivelogs from orcl_std
    Real time apply is enabled both in orcl_std (physical standby) and orcl_tri (logical standby)
    When I create a table in primary orcl, I am unable to see it on orcl_tri (Although real time apply is enabled)
    However, when I switch log in primary, I can see the new table on orcl_tri.
    My question is, why realtime apply is not working in my scenerio ?
    orcl_std : ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION USING CURRENT LOGFILE;
    orcl_tri: ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
    Oracle 11.2.0.3.0

    Hi mseberg,
    Thanks for your reply.
    There is no load or network issue as I`ve just created these databases for the experiement.
    I have the same output from standby and primary databases.
    SQL> select bytes/1024/1024 from  v$standby_log;
    BYTES/1024/1024
                 10
                 10
                 10I can see below output in standby alertlog
    Fri Nov 16 08:39:51 2012
    ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE
    ALTER DATABASE START LOGICAL STANDBY APPLY (orcl)
    with optional part
    IMMEDIATE
    Attempt to start background Logical Standby process
    Fri Nov 16 08:39:51 2012
    LSP0 started with pid=37, OS id=16141
    Completed: ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE
    LOGMINER: Parameters summary for session# = 1
    LOGMINER: Number of processes = 3, Transaction Chunk Size = 201
    LOGMINER: Memory Size = 30M, Checkpoint interval = 150M
    LOGMINER: SpillScn 1953318, ResetLogScn 995548
    LOGMINER: summary for session# = 1
    LOGMINER: StartScn: 0 (0x0000.00000000)
    LOGMINER: EndScn: 0 (0x0000.00000000)
    LOGMINER: HighConsumedScn: 1955287 (0x0000.001dd5d7)
    LOGMINER: session_flag: 0x1
    LOGMINER: Read buffers: 16
    Fri Nov 16 08:39:55 2012
    LOGMINER: session#=1 (Logical_Standby$), reader MS00 pid=30 OS id=16145 sid=49 started
    Fri Nov 16 08:39:55 2012
    LOGMINER: session#=1 (Logical_Standby$), builder MS01 pid=39 OS id=16149 sid=44 started
    Fri Nov 16 08:39:55 2012
    LOGMINER: session#=1 (Logical_Standby$), preparer MS02 pid=40 OS id=16153 sid=50 started
    LOGMINER: Turning ON Log Auto Delete
    LOGMINER: Begin mining logfile during commit scan for session 1 thread 1 sequence 202, +DATA/orcl_std/archivelog/2012_11_15/thread_1_seq_202.349.799450179
    LOGMINER: End mining logfiles during commit scan for session 1
    LOGMINER: Turning ON Log Auto Delete
    LOGMINER: Begin mining logfile for session 1 thread 1 sequence 202, +DATA/orcl_std/archivelog/2012_11_15/thread_1_seq_202.349.799450179
    LOGMINER: End   mining logfile for session 1 thread 1 sequence 202, +DATA/orcl_std/archivelog/2012_11_15/thread_1_seq_202.349.799450179
    Fri Nov 16 08:40:04 2012
    LOGSTDBY Analyzer process AS00 started with server id=0 pid=41 OS id=16162
    Fri Nov 16 08:40:05 2012
    LOGSTDBY Apply process AS03 started with server id=3 pid=45 OS id=16175
    Fri Nov 16 08:40:05 2012
    LOGSTDBY Apply process AS04 started with server id=4 pid=46 OS id=16179
    Fri Nov 16 08:40:05 2012
    LOGSTDBY Apply process AS01 started with server id=1 pid=42 OS id=16167
    Fri Nov 16 08:40:05 2012
    LOGSTDBY Apply process AS05 started with server id=5 pid=47 OS id=16183
    Fri Nov 16 08:40:05 2012
    LOGSTDBY Apply process AS02 started with server id=2 pid=44 OS id=16171Do you think real-time apply wasnt setup properly ?

  • Foreign keys on cascade delete rules are not migrated

    hello folks, i tried to migrate a database from sql server 2005 to oracle 10g express using SQL Developer 1.5.5 and noticed that the cascade delete option of the foreign keys was ignored by the tool.
    I'd like to know if it's a limitation of the tool or a bug. I have over 500 fks with such configuration and it would be simply impossible to manually configure every migrated fk in oracle.
    thanks all.

    Thanks,
    Already logged:
    Bug 7652822 - ON DELETE CASCADE IS LOST DURING MIGRATION
    -Turloch

  • Cascade deletes in kodo 3.0.1

    I'm trying to use the cascade delete option and am having problems.
    Here is my jdo file:
    <class name="RoomScene" objectid-class="RoomSceneId">
    <extension vendor-name="kodo" key="jdbc-class-map"
    value="base">
    <extension vendor-name="kodo" key="table"
    value="t_roomscene"/>
    <extension vendor-name="kodo" key="pk-column" value="id_i"/>
    </extension>
    <extension vendor-name="kodo" key="jdbc-version-ind"
    value="version-number">
    <extension vendor-name="kodo" key="column"
    value="rowversion_i"/>
    </extension>
    <field name="id" primary-key="true">
    <extension vendor-name="kodo" key="jdbc-field-map"
    value="value">
    <extension vendor-name="kodo" key="column"
    value="id_i"/>
    </extension>
    </field>
    <field name="itemLinks">
    <collection element-type="ItemLink"/>
    <extension vendor-name="kodo" key="element-delete-action"
    value="cascade"/>
    <extension vendor-name="kodo" key="jdbc-field-map"
    value="one-many">
    <extension vendor-name="kodo" key="table"
    value="t_mapitemroomscene"/>
    <extension vendor-name="kodo" key="ref-column.id_i"
    value="roomscene_id_i"/>
    </extension>
    </field>
    </class>
    <class name="ItemLink" objectid-class="ItemLinkId">
    <extension vendor-name="kodo" key="jdbc-class-map" value="base">
    <extension vendor-name="kodo" key="table" value="t_mapitemroomscene"/>
    <extension vendor-name="kodo" key="pk-column" value="id_i"/>
    </extension>
    <extension vendor-name="kodo" key="jdbc-version-ind"
    value="version-number">
    <extension vendor-name="kodo" key="column" value="rowversion_i"/>
    </extension>
    <field name="id" primary-key="true">
    <extension vendor-name="kodo" key="jdbc-field-map" value="value">
    <extension vendor-name="kodo" key="column" value="id_i"/>
    </extension>
    </field>
    <field name="item">
    <extension vendor-name="kodo" key="jdbc-field-map" value="one-one">
    <extension vendor-name="kodo" key="column.id_vc" value="item_id_vc"/>
    </extension>
    </field>
    <field name="roomScene">
    <extension vendor-name="kodo" key="jdbc-field-map" value="one-one">
    <extension vendor-name="kodo" key="column.id_i"
    value="roomscene_id_i"/>
    </extension>
    </field>
    <field name="linkText">
    <extension vendor-name="kodo" key="jdbc-field-map" value="value">
    <extension vendor-name="kodo" key="column" value="linktext_vc"/>
    </extension>
    </field>
    </class>
    (each RoomScene has many ItemLinks)
    but when I delete my RoomScene object, I get the following exception:
    "kodo.util.FatalDataStoreException: ERROR: ExecUpdate: Fail to add
    null value in not null attribute roomscene_id_i {prepstmnt 2515391
    UPDATE t_mapitemroomscene SET roomscene_id_i = ? WHERE roomscene_id_i =
    ?} [code=0, state=null]
    NestedThrowables:
    com.solarmetric.jdbc.ReportingSQLException: ERROR: ExecUpdate: Fail to
    add null value in not null attribute roomscene_id_i {prepstmnt 2515391
    UPDATE t_mapitemroomscene SET roomscene_id_i = ? WHERE roomscene_id_i =
    ?} [code=0, state=null]
    java.sql.SQLException: ERROR: ExecUpdate: Fail to add null value in
    not null attribute roomscene_id_i
    at
    kodo.jdbc.sql.SQLExceptions.getFatalDataStore(SQLExceptions.java:42)
    at
    kodo.jdbc.sql.SQLExceptions.getFatalDataStore(SQLExceptions.java:24)
    at
    kodo.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:510)
    at
    kodo.runtime.PersistenceManagerImpl.flushInternal(PersistenceManagerImpl
    ..java:788)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerI
    mpl.java:644)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:
    416)
    at
    net.mastertile.www.room.action.RoomSceneDeleteAction.executeLogic(RoomSc
    eneDeleteAction.java:27)
    my kodo.properties file is like this:
    javax.jdo.PersistenceManagerFactoryClass:
    kodo.jdbc.runtime.JDBCPersistenceManagerFactory
    javax.jdo.option.RetainValues: true
    javax.jdo.option.RestoreValues: true
    javax.jdo.option.Optimistic: true
    javax.jdo.option.NontransactionalWrite: false
    javax.jdo.option.NontransactionalRead: true
    javax.jdo.option.Multithreaded: false
    javax.jdo.option.MsWait: 5000
    javax.jdo.option.MinPool: 1
    javax.jdo.option.MaxPool: 200
    javax.jdo.option.IgnoreCache: true
    javax.jdo.option.ConnectionFactoryName=java:comp/env/jdbc/default
    javax.jdo.option.ConnectionFactory2Name=java:comp/env/jdbc/default
    kodo.LicenseKey=XXXXXXXXXXX
    kodo.jdbc.MappingFactory=metadata
    kodo.DataCache=false
    kodo.RemoteCommitProvider=sjvm
    kodo.FlushBeforeQueries=false
    kodo.jdbc.ForeignKeyConstraints=true
    kodo.jdbc.SequenceFactory: native
    kodo.jdbc.SchemaFactory: dynamic
    We are using postgresql.
    Thanks,
    Nathan

    Were the foreign keys generated in the database? You also may want to
    try using the *-dependent extensions.
    Nathan Voxland wrote:
    I'm trying to use the cascade delete option and am having problems.
    Here is my jdo file:
    <class name="RoomScene" objectid-class="RoomSceneId">
    <extension vendor-name="kodo" key="jdbc-class-map"
    value="base">
    <extension vendor-name="kodo" key="table"
    value="t_roomscene"/>
    <extension vendor-name="kodo" key="pk-column" value="id_i"/>
    </extension>
    <extension vendor-name="kodo" key="jdbc-version-ind"
    value="version-number">
    <extension vendor-name="kodo" key="column"
    value="rowversion_i"/>
    </extension>
    <field name="id" primary-key="true">
    <extension vendor-name="kodo" key="jdbc-field-map"
    value="value">
    <extension vendor-name="kodo" key="column"
    value="id_i"/>
    </extension>
    </field>
    <field name="itemLinks">
    <collection element-type="ItemLink"/>
    <extension vendor-name="kodo" key="element-delete-action"
    value="cascade"/>
    <extension vendor-name="kodo" key="jdbc-field-map"
    value="one-many">
    <extension vendor-name="kodo" key="table"
    value="t_mapitemroomscene"/>
    <extension vendor-name="kodo" key="ref-column.id_i"
    value="roomscene_id_i"/>
    </extension>
    </field>
    </class>
    <class name="ItemLink" objectid-class="ItemLinkId">
    <extension vendor-name="kodo" key="jdbc-class-map" value="base">
    <extension vendor-name="kodo" key="table" value="t_mapitemroomscene"/>
    <extension vendor-name="kodo" key="pk-column" value="id_i"/>
    </extension>
    <extension vendor-name="kodo" key="jdbc-version-ind"
    value="version-number">
    <extension vendor-name="kodo" key="column" value="rowversion_i"/>
    </extension>
    <field name="id" primary-key="true">
    <extension vendor-name="kodo" key="jdbc-field-map" value="value">
    <extension vendor-name="kodo" key="column" value="id_i"/>
    </extension>
    </field>
    <field name="item">
    <extension vendor-name="kodo" key="jdbc-field-map" value="one-one">
    <extension vendor-name="kodo" key="column.id_vc" value="item_id_vc"/>
    </extension>
    </field>
    <field name="roomScene">
    <extension vendor-name="kodo" key="jdbc-field-map" value="one-one">
    <extension vendor-name="kodo" key="column.id_i"
    value="roomscene_id_i"/>
    </extension>
    </field>
    <field name="linkText">
    <extension vendor-name="kodo" key="jdbc-field-map" value="value">
    <extension vendor-name="kodo" key="column" value="linktext_vc"/>
    </extension>
    </field>
    </class>
    (each RoomScene has many ItemLinks)
    but when I delete my RoomScene object, I get the following exception:
    "kodo.util.FatalDataStoreException: ERROR: ExecUpdate: Fail to add
    null value in not null attribute roomscene_id_i {prepstmnt 2515391
    UPDATE t_mapitemroomscene SET roomscene_id_i = ? WHERE roomscene_id_i =
    ?} [code=0, state=null]
    NestedThrowables:
    com.solarmetric.jdbc.ReportingSQLException: ERROR: ExecUpdate: Fail to
    add null value in not null attribute roomscene_id_i {prepstmnt 2515391
    UPDATE t_mapitemroomscene SET roomscene_id_i = ? WHERE roomscene_id_i =
    ?} [code=0, state=null]
    java.sql.SQLException: ERROR: ExecUpdate: Fail to add null value in
    not null attribute roomscene_id_i
    at
    kodo.jdbc.sql.SQLExceptions.getFatalDataStore(SQLExceptions.java:42)
    at
    kodo.jdbc.sql.SQLExceptions.getFatalDataStore(SQLExceptions.java:24)
    at
    kodo.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:510)
    at
    kodo.runtime.PersistenceManagerImpl.flushInternal(PersistenceManagerImpl
    .java:788)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerI
    mpl.java:644)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:
    416)
    at
    net.mastertile.www.room.action.RoomSceneDeleteAction.executeLogic(RoomSc
    eneDeleteAction.java:27)
    my kodo.properties file is like this:
    javax.jdo.PersistenceManagerFactoryClass:
    kodo.jdbc.runtime.JDBCPersistenceManagerFactory
    javax.jdo.option.RetainValues: true
    javax.jdo.option.RestoreValues: true
    javax.jdo.option.Optimistic: true
    javax.jdo.option.NontransactionalWrite: false
    javax.jdo.option.NontransactionalRead: true
    javax.jdo.option.Multithreaded: false
    javax.jdo.option.MsWait: 5000
    javax.jdo.option.MinPool: 1
    javax.jdo.option.MaxPool: 200
    javax.jdo.option.IgnoreCache: true
    javax.jdo.option.ConnectionFactoryName=java:comp/env/jdbc/default
    javax.jdo.option.ConnectionFactory2Name=java:comp/env/jdbc/default
    kodo.LicenseKey=XXXXXXXXXXX
    kodo.jdbc.MappingFactory=metadata
    kodo.DataCache=false
    kodo.RemoteCommitProvider=sjvm
    kodo.FlushBeforeQueries=false
    kodo.jdbc.ForeignKeyConstraints=true
    kodo.jdbc.SequenceFactory: native
    kodo.jdbc.SchemaFactory: dynamic
    We are using postgresql.
    Thanks,
    Nathan
    Steve Kim
    [email protected]
    SolarMetric Inc.
    http://www.solarmetric.com

  • Privately Owned and Cascade Delete in DB

    HI,
    What is the relationship between setting privately owned in Toplink vs creating a cascade delete in Oracle DB? If I've the cascade delete in DB then what is the advantage of setting the privately owned flag in toplink?
    Thanks

    If you only set the cascade delete option in the database, then TopLink will have no knowledge that the private object was deleted (or that it is private in general). This would mean that TopLink would not remove the private object from the cache or process it as have being deleted. In general this may not cause your app any direct issues if you never read the private object directly as it will eventually garbage collect from the cache.
    Making the relationship privately own in TopLink will also ensure the following:
    - If you replace the private object with another, or set it to null, TopLink will delete the old object on the update of the source. Cascade delete only works on deletion.
    - If the relationship is a 1-m and you remove an object from the collection it will be removed.
    - If you refresh the parent object, by default the child will also be refreshed.
    - If you merge the parent object, by default the child will also be merged.

  • Problem with cascade delete in CMP one-to-one relationship

    I am not able to cascade delete for one-to-one relationship. Even though relationship seems to be setup correctly, record from the second table is not deleted.
    Following is the structure of tables i am using:
    First Table(vcc_lrmc) -- LRMCBean
    lrmc_id pk (Bean field is id)
    lrmc_dtl_id (Bean field islrmcDtlId)
    Second Table (vcc_lrmc_dtl) -- LRMCDetailBean
    lrmc_dtl_id (pk) (Bean field islrmcDtlId)
    lrmc_id (Bean field id)
    One to one bidirectional relationship has been setup with CMR fields moreLRMC and mainLRMC.
    section of ejb-jar is as follows:
    <ejb-relation>
    <ejb-relation-name>LRMCMainToDetail</ejb-relation-name>
    <ejb-relationship-role>
    <multiplicity>One</multiplicity>
    <relationship-role-source>
    <ejb-name>LRMC</ejb-name>
    </relationship-role-source>
    <cmr-field>
    <cmr-field-name>moreLRMC</cmr-field-name>
    </cmr-field>
    </ejb-relationship-role>
    <ejb-relationship-role>
    <multiplicity>One</multiplicity>
    <cascade-delete/>
    <relationship-role-source>
    <ejb-name>LRMCDetail</ejb-name>
    </relationship-role-source>
    <cmr-field>
    <cmr-field-name>mainLRMC</cmr-field-name>
    </cmr-field>
    </ejb-relationship-role>
    </ejb-relation>
    section of orion-ejb-jar is as follows:(Bidirectional mapping)
    <entity-deployment name="LRMC" data-source="jdbc/VCCDS" table="VCC_LRMC">
    <cmp-field-mapping name="moreLRMC">
    <entity-ref home="LRMCDetail">
    <cmp-field-mapping name="lrmcDtlId" persistence-name="LRMC_DTL_ID"/>
    </entity-ref>
    </cmp-field-mapping>
    </entity-deployment>
    <entity-deployment name="LRMCDetail" data-source="jdbc/VCCDS" table="VCC_LRMC_DTL">
    <cmp-field-mapping name="mainLRMC">
    <entity-ref home="LRMC">
    <cmp-field-mapping name="id" persistence-name="LRMC_ID"/>
    </entity-ref>
    </cmp-field-mapping>
    </entity-deployment>
    Is there anything else need to be setup for Cascade delete or is there anything wrong the way one-to-one relationship has been setup.
    Pls. advice.
    Thanks
    Dhiraj

    Is it happening because of this bug.
    Cannot create a 1:1 bi-directional CMR for entity beans when database tables are reverse engineered. (2447364)
    Anyone, any idea on this ?
    Cheers,
    Dhiraj

  • Cascade delete in many to many association

    Hi All,
        I have a usecase, there is an association with many to many cardinality  between 3 EO's. If i delete  any record in master, the corresponding childs all should delete.
        So appreciate if any alternatives on above usecase. Thanks in advance

    Hi,
    cascade delete is a function of the database. When you enable cascade delete for an entity operation then this only produces the proper SQL code for deleting a data object. If you have a many-to-many relation then this means you have multiple master and child records, which I think makes your "If i delete  any record in master, the corresponding childs all should delete" impossible.
    for what its worth, please read
    Creating a Business Domain Layer Using Entity Objects - 11g Release 2 (11.1.2.3.0)
    to learn how to parse and delete detail records  from an entity object
    http://docs.oracle.com/cd/E35521_01/web.111230/e16182/bcentities.htm#CEGJAFCF
    The last document is about posting orders (e.g. create a master record before you create detail records). However, with a few changes you can reverse this to perform a delete operation (just add this code to the entity impl classes of the entities so they delete their child objects
    Frank

Maybe you are looking for

  • Adobe elements photo shop full install does not work. How do I get it to work?

      It worked before and now it doesn't. For some reason the computer is treating the full install as if it were a demo. I already registered the product when I first installed...... Only the organizer works now. I uninstalled and re installed but stil

  • Reader X suddenly won't work

    Suddenly, Reader X (10.1.2) does not work on my XP-Pro SP3 machine (it worked fine until today). I have uninstalled Reader, downloaded and reinstalled it from your site: same issue. I can open the program (interestingly, task manager shows two lines

  • Final Cut - Harddrive problem?

    I was having some issues with FCP earlier today (certain playbacks were funky). I figured that there was some issue with my settings. However, when I returned to the project and tried to start-up of Power MAC G5, the start-up seemed to fail. The moni

  • Using the DTW objects in SDK

    Hi Dear; how can i use the DTW in SDK? best regards;

  • How To Securely Mount iPad On Glass?

    As a requirement to display an app in an office I am looking for suggestions how I can securely mount an iPad onto an internal glass window. Anybody done this before or have suggestions on how to do it?