-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Filtres HIBERNATE SEARCH
PostPosted: Fri Nov 21, 2008 3:45 pm 
Beginner
Beginner

Joined: Tue Feb 12, 2008 3:53 pm
Posts: 38
Bonjour,

Je suis en train de faire une recherche full texte avec HIBERNATE SEARCH.

Je veux faire une recherche full texte sur la propriete "value" de mon objet Itemdata

Code:
@Indexed
public class ItemData  {
   /**
    * Item Data Id
    */
        @DocumentId
   protected long itemDataId;
   /**
    * Item data value
    * The data collected for an item. This data is represented according to DataType
    * attribute of the Item.
    */
        @Field
   protected String value;
   /**
    *

.........
}


Quand je vais faire cette recherche, je vais obtenir une liste de resultats :


Code:
         
     List<Itemdata> results = hibQuery.list();


Parmi cette liste, je veux garder seulement les Itemdata qui sont accessible à l'utilisateur connecte.
Dans ma base de donnees, cela correspond à la requete suivante :

Code:
select idat.*
from itemdata idat, itemgroupdata igdat, formdata fdat, eventdata edat, subject sbj, sites si, study s,groups grp, groups_users grpu, user usr
where idat1.ITEM_GROUP_DATA_ID=igdat.ITEM_GROUP_DATA_ID
and igdat.FORM_DATA_ID=fdat.FORM_DATA_ID
and fdat.EVENT_DATA_ID=edat.EVENT_DATA_ID
and edat.SUBJECT_ID=sbj.SUBJECT_ID
and sbj.SITE_ID=si.SITE_ID
and sbj.PROJECT_ID=s.PROJECT_ID
and s.study_id=grp.study_id
and grp.group_id=grpu.group_id
and grpu.user_id=usr_id
and usr.site_id=sbj.site_id
and usr.user_id=234;


Comme vous pouvez voir la requete est complexe.
Si je veux implementer un filtre HIBERNATE SEARCH à partir de ma requete HIBERNATE SEARCH pour obtenir cette restriction, je ne vois pas comment faire.
D'apres ce que j'ai lu, les Filtres HIBERNATE SEARCH peuvent etre construit à partir des proprietes qui sont indexes par HIBERNATe SEARCH.
Par example selectionner les voitures rouges ou selectionner les voitures appartenant à un homme habitant Los Angeles.
Dans mon cas, cela reviendraitindexer toutes les relations entre Itemdata et User. C'est impossible.
Est-ceque quelqu'un a une idee comment construire un tel filtre ?

La meilleure solution serait peut-etre de recuperer par une requete de base de donne les Itemdata accesibles et de faire ensuite une intersection avec la liste obtenu avec HIBERNATE SEARCH ?

Si quelqu'un peut me venir en aide, merci.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.