-
Feature Request
-
Resolution: Obsolete
-
Major
-
None
-
8.12.7.6_3, 9.2
-
None
Infinispan cache dsl translator currently doesn't support deleting child objects when using complex POJO classes.
Example of complex POJO:
Unable to find source-code formatter for language: plain. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
package org.jboss.qe.jdg.remote.protobuf.complex; /* @Indexed */ message Person { /* @IndexedField(index=true, store=false) */ required int32 id = 1; /* @IndexedField */ required string name = 2; /* @IndexedField */ optional string email = 3; /* @IndexedField(index=true, store=false) */ repeated PhoneNumber phones = 4; /* @Indexed */ message Address { /* @IndexedField */ required string Address = 1; /* @IndexedField(index=true, store=false) */ required string City = 2; /* @IndexedField(index=true, store=false) */ required string State = 3; } /* @IndexedField(index=true, store=false) */ optional Address address = 5; } /* @Indexed */ message PhoneNumber { /* @IndexedField */ required string number = 1; }
Mapped metadata:
CREATE FOREIGN TABLE Address ( Address string NOT NULL PRIMARY KEY OPTIONS (NAMEINSOURCE 'address.Address', SEARCHABLE 'Searchable', NATIVE_TYPE 'java.lang.String'), City string NOT NULL OPTIONS (NAMEINSOURCE 'address.City', SEARCHABLE 'Searchable', NATIVE_TYPE 'java.lang.String'), State string NOT NULL OPTIONS (NAMEINSOURCE 'address.State', SEARCHABLE 'Searchable', NATIVE_TYPE 'java.lang.String'), id integer NOT NULL OPTIONS (NAMEINSOURCE 'id', SELECTABLE FALSE, SEARCHABLE 'Searchable', NATIVE_TYPE 'int'), CONSTRAINT FK_PERSON FOREIGN KEY(id) REFERENCES Person (id) OPTIONS (NAMEINSOURCE 'address') ) OPTIONS (UPDATABLE TRUE); CREATE FOREIGN TABLE Person ( id integer NOT NULL OPTIONS (NAMEINSOURCE 'id', SEARCHABLE 'Searchable', NATIVE_TYPE 'int'), name string NOT NULL OPTIONS (NAMEINSOURCE 'name', SEARCHABLE 'Searchable', NATIVE_TYPE 'java.lang.String'), email string OPTIONS (NAMEINSOURCE 'email', SEARCHABLE 'Searchable', NATIVE_TYPE 'java.lang.String'), CONSTRAINT PK_ID PRIMARY KEY(id) ) OPTIONS (UPDATABLE TRUE); CREATE FOREIGN TABLE PhoneNumber ( number string NOT NULL PRIMARY KEY OPTIONS (NAMEINSOURCE 'phones.number', SEARCHABLE 'Searchable', NATIVE_TYPE 'java.lang.String'), id integer NOT NULL OPTIONS (NAMEINSOURCE 'id', SELECTABLE FALSE, SEARCHABLE 'Searchable', NATIVE_TYPE 'int'), CONSTRAINT FK_PERSON FOREIGN KEY(id) REFERENCES Person (id) OPTIONS (NAMEINSOURCE 'phones') ) OPTIONS (UPDATABLE TRUE);
Expected usage:
DELETE FROM PhoneNumber WHERE id=3
- is related to
-
TEIID-4516 Add support for updating child objects
- Closed
-
TEIID-4519 JDG prevent execution of delete or update on child objects
- Closed