Esquema DataGraph

Esquema DataGraph Criado pelo Mediador EJB

O esquema criado pelo mediador para uma consulta consistem em um Eclass para cada instrução de consulta. O nome do Eclass é o Abstract Schema Name (ASN) do Enterprise JavaBeans (EJB). Os Eattributes do Eclass correspondem aos campos CMP (Container-Managed Persistence) ou expressões retornadas pela instrução de consulta.

Para DataObjects estáticos, o nome do Eclass poder ser diferente desde que o argumento Map seja utilizado na chamada createMediator.

Cada relacionamento de EJB especificado na cláusula FROM ou XREL inclui um Ereference no esquema. Os relacionamentos EJB podem ser unidirecionais ou bidirecionais. No entanto, todos os Ereferences são definidos como bidirecionais porque isso é necessário para navegar eficientemente no DataGraph na atualização. Um nome de relacionamento inverso é gerado no caso de um relacionamento EJB unidirecional. Um nome gerado tem o formato <ASName_source><ASName_target>. Por exemplo, se os ASNames forem EmpBean e DeptBean e o relacionamento unidirecional for dept de EmpBean para DeptBean, o nome inverso gerado será DeptBeanEmpBean.

Se nenhum argumento ECLass for utilizado no createMediator, o mediador criará um esquema DataGraph com as seguintes características:
  • os nomes DataObject Eclass são os ASN (Abstract Schema Names) do EJB
  • os nomes e tipos de atributos DataObject são nomes e tipos de expressão nas cláusulas de consulta SELECT
  • os nomes e tipos de referência DataObject provenientes dos relacionamentos EJB referenciados nas cláusulas FROM.

Um DataObject fictício com o nome Eclass de DataGraphRoot também é criado e tem referência de retenção a todos os DataObjects. A referência é multiavaliada, utilizando o nome EJB ASN.

DataObject root =  m.getGraph( parms );
root.getType().getName();   // isso retornaria a cadeia "DataGraphRoot"

List depts = (List) root.get("DeptBean");   
// a lista de todos os SDOs DeptBean no DataGraph

List emps = (List) root.get("EmpBean");  
// a lista de todos os SDOs EmpBean no DataGraph

Padrões de Contenção DataGraph

As referências entre SDO (Service Data Objects) podem ser definidas como referências de contenção, nesse caso, quando um SDO é excluído, a exclusão é organizada em cascata para todos os SDOs contidos. Além disso, quando o DataGraph é serializado como um documento XML, o SDO contido é aninhado dentro do SDO pai. As referências não contidas são expressadas como expressões de caminho no documento XML.

A contenção deve ser definida no esquema DataGraph. Quando o mediador define o esquema, o SDO raiz (nomeado DataGraphRoot) contém todos os outros SDOs. Os relacionamentos EJB são definidos como referências SDO não contidas.

Quando o responsável pela chamada define o esquema DataGraph, existem três padrões.
ROOT_CONTAINS_ALL
Nesse padrão, há um SDO fictício que é a raiz. É fictício no sentido que não corresponde a nenhum EJB. Seu objetivo é conter todos os outros SDOs. Se o mediador gerar o esquema de gráfico, a raiz fictícia terá um nome de classe DataGraphRoot e conterá referências cujos nomes são os nomes EJB ASN. Se o responsável pela chamada utilizar esquema estático, a raiz poderá ter qualquer nome. O Eclass da raiz é transmitido na chamada do createMediator.
ROOT_CONTAINS_SOME
Esse padrão é aplicável apenas para o esquema estático. Ainda há um SDO fictício que a raiz do gráfico. Outro SDO deve ser contido pelo Ereference que corresponde ao relacionamento EJB utilizado na instrução de consulta ou o SDO deve ser contido pela raiz fictícia.
NO_DUMMY ROOT
Esse padrão é aplicável apenas para o esquema estático. Não há nenhuma raiz fictícia. O SDO de raiz corresponde à primeira instrução de consulta que deve retornar apenas uma única instância. Nenhum SDO de raiz deve ser contido pelo Ereference que corresponde ao relacionamento EJB utilizado na instrução de consulta.

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_ejbmeddgs
Nome do arquivo: rejb_ejbmeddgs.html