cancel
Showing results for 
Search instead for 
Did you mean: 

OPENCMIS QUERY JOIN

albertochana
Champ in-the-making
Champ in-the-making
Hola, tengo el siguiente problema:

Tengo un tipo definido "registro" que se relaciona con otro llamado "estado", cuya asociacion la tengo definida en el modelo asi:

         
   <association name="pw:debil_estado">
      <title>Debil Estado</title>
         <source>
            <mandatory>false</mandatory>
                                      <many>true</many>
         </source>
         <target>
            <class>pw:estado</class>
            <mandatory>false</mandatory>
            <many>true</many>
         </target>
   </association>

Accedo al explorador de alfresco para crear un nuevo registro y selecciono en la asociacion uno de los estados que tengo creados.
La pregunta es, como puedo recuperar mediante una query con JOIN o algo similar todos los registros que cumplan un cierto estado?.
He lanzado una consulta tan sencilla como select * from pw:registro y he observado que cuando lo recupero en un QueryResult trae todas las propiedades de forma correcta, pero no contiene las asociaciones, que imagino que estarian contenidas en "relationships" dentro del objeto QueryResult.

¿Es posible hacer esto por query? No he encontrado forma de acceder o hacer join con cmis:relationships ya que me dice que no es queryable, ¿alguna idea?

Gracias
1 REPLY 1

albertochana
Champ in-the-making
Champ in-the-making
Ahora consigo ver las relaciones de los objetos que recupero mediante:

OperationContext operationContext = new OperationContextImpl();
operationContext.setIncludeRelationships(IncludeRelationships.BOTH);

Pero sigo sin poder ejecutar una query con join porque el id del elemento que tendria que relacionar viene en el subobjeto relationships y no en properties que parece que es donde hace las joins.
Necesitaria hacer una query de este estilo:

select * from pw:record R JOIN pw:state E ON R.child_association_to_state=S.cmisSmiley SurprisedbjectId

Esto falla claro, alguna idea de por donde tirar??

Gracias