Toon posts:

[jboss] cascade delete/update

Pagina: 1
Acties:

Verwijderd

Topicstarter
Doelstelling: entitybean verwijderen en gerelateerde beans worden mee verwijderd.

Probleem: javax.ejb.RemoveException: Could not remove entity wat me ook niet verbaast aangezien jboss de tabel aanmaakt zonder cascade restricties op de foreign keys in te stellen. Ik kan ze wel manueel aanpassen en dan worden de waardes in de database effectief verwijdert maar ik krijg nog steeds die exception.

Wat heb ik al gedaan?
Ik heb op google, het jboss forum en dit forum eenz gezocht naar problemen ivm jboss en cascade acties. In alle gevallen heb ik nooit een oplossing zien staan dit terwijl ik meldingen van het probleem zie van bijna 6 maanden geleden.

Wat de bean betreft heb ik met xdoclet de relatie ingesteld
code:
1
2
3
4
5
6
7
8
9
10
11
12
     * @ejb:relation
     *      name = "Crew-User"
     *      role-name = "Crew-is-User"
     *      cascade-delete = "yes"
     *      target-ejb = "User"
     *      target-role-name = "User-can-be-Crew"
     *      target-cascade-delete = "yes"
     *
     * @jboss:relation
     *      fk-constraint = "true"
     *      fk-column = "userid"
     *      related-pk-field = "name"

En het resultaat in ejb-jar.xml is het volgende
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
       <ejb-relation >
         <ejb-relation-name>Crew-User</ejb-relation-name>

         <ejb-relationship-role >
            <ejb-relationship-role-name>Crew-is-User</ejb-relationship-role-name>
            <multiplicity>One</multiplicity>
            <cascade-delete/>
            <relationship-role-source >
               <ejb-name>Crew</ejb-name>
            </relationship-role-source>
            <cmr-field >
               <cmr-field-name>user</cmr-field-name>
            </cmr-field>
         </ejb-relationship-role>

         <ejb-relationship-role >
            <ejb-relationship-role-name>User-can-be-Crew</ejb-relationship-role-name>
            <multiplicity>One</multiplicity>
            <cascade-delete/>
            <relationship-role-source >
               <ejb-name>User</ejb-name>
            </relationship-role-source>
         </ejb-relationship-role>

      </ejb-relation>

In jboss-cmp.xml staat het volgende
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    <ejb-relation>
      <ejb-relation-name>Crew-User</ejb-relation-name>

      <ejb-relationship-role>
          <ejb-relationship-role-name>Crew-is-User</ejb-relationship-role-name>
          <fk-constraint>true</fk-constraint>
          <key-fields/>

      </ejb-relationship-role>
      <ejb-relationship-role>
          <ejb-relationship-role-name>User-can-be-Crew</ejb-relationship-role-name>
          <key-fields>
             <key-field>
               <field-name>name</field-name>
               <column-name>userid</column-name>
             </key-field>
          </key-fields>

      </ejb-relationship-role>
    </ejb-relation>

Wat er mij allemaal correct uitziet. Tenminste de cascade tag verschijnt wel maar wordt gewoon niet toegepast. Ik kan me niet echt voorstellen dat dit de bedoeling kan zijn dus wat is nu de aan te raden oplossing?
Het beetje uitleg dat je erover vindt is ook niet echt duidelijk en het kan toch niet de bedoeling zijn dat ik zelfs aan de kant van de gerefereerde bean instellingen moet maken voor alle soort relaties die ernaar gemaakt kunnen worden.
Maargoed als iemand een idee heeft dan hoor ik het graag.. ondertussen zoek ik nog een beetje verder.

Verwijderd

ja die files zien er goed uit.... misschien eens posten op de mailing list van Jboss... het kan een bug zijn maar waarschijnlijk niet... dit staat niet in de Jboss bug DB....

het kan ook gewoon aan iets anders liggen bijv je code