SourceForge.net Logo
Main Overview Wiki Issues Forum Build Fisheye

Welcome, Guest
Guest Settings
Help

Compass Support Forums » Compass » Compass Users

Thread: Cyclical relationship


Permlink Replies: 8 - Pages: 1 - Last Post: Nov 8, 2011 8:28 PM Last Post By: ying
wechen

Posts: 16
Registered: 11/6/05
Cyclical relationship
Posted: Nov 7, 2005 11:32 PM
  Click to reply to this thread Reply
Hi,

We've been looking around the forum and it seemed that the cyclical reference was solved in 0.5 release. However, we have a situation here and wish that we can get a more straight answer.

We have a class, say Parent, which has a set that contains objects of its subclass, say Child. The Child class has a set that contains objects of itself. We would like the search always return the Parent type object. If using 'component' element to define the set, we got the OutOfMemory exception. And if using 'reference' element, the understanding is that when searching something in the Child, the owner of the Child, Parent, won't be returned. So it seems that the 'parent' element should be used. Is the following mapping correct?

/**************** Class Definition ******************/
class Parent {
...
Set children; // Collection of Child
...
};

class Child {
...
Set theChildren; // Collection of Child
};

/***************** Mapping Definition *****************/
...
<class name="Parent" alias="parent">
....
<parent name="children"/>
...
</class>

<class name="Child" alias="child">
...
<parent name="theChildren"/>
...
</class>
....

Also when a search matches a Child object in the 'theChildren' set, will the Parent object which owns that Child object indirectly be returned?
From the document, there is no col-class attribute for 'parent' element, is it not required in this case?

Thanks for your time.

Shay Banon

Posts: 4,028
Registered: 9/6/05
Re: Cyclical relationship
Posted: Nov 8, 2005 5:56 AM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
There is a problem in compass with classes that point to them-self. I raised an issue (http://jira.compassframework.org/browse/ CMP-115), and the fix will be part of 0.6.2 (which I hope to release in a week).

The correct mapping that should be used in your case (and after the fix is implemented), should have a component mapping from the Parent to the children (which works now), and from the child to it's children (which causes the OutOfMemory exception). The parent mapping is just used as a way to initialize a reference (java reference) back to the class that has the component mapping.

In this case, when you search for something that resides in one of the children, or the children children, then the parent will be returned. A good practice would be to add root="false" to the child mapping.

Cheers,
Shay
wechen

Posts: 16
Registered: 11/6/05
Re: Cyclical relationship
Posted: Dec 1, 2005 10:47 AM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
One more question about the relationship. How do we represent the bi-directional relationships? It seemed that these relationships created another type of cyclical scenario if we defined both sides 'component' or 'reference' on the other end of the relationship.

Thanks.
Shay Banon

Posts: 4,028
Registered: 9/6/05
Re: Cyclical relationship
Posted: Dec 1, 2005 11:34 AM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
When you say bi-directional relationship, do you mean that a child has a relationship with it's parent (Parent), or father (the Child)? Since I am testing exactly the relationship specified in the first message, and it seems to work (no bi-directional relationships are defined there).

Cheers,

Shay
wechen

Posts: 16
Registered: 11/6/05
Re: Cyclical relationship
Posted: Dec 1, 2005 12:02 PM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
For the bi-directional relationship, the two classes don't have to have class hierarchy relationship. Only that each contains a reference to the other or a set of others. If we map the references to be 'component' or 'reference', it seems that the cyclical issue emerges when the some subclasses of these classes get mapped.

I think I need to clarify that the parent/child relationship mentioned above is more of a uni-directional relationship so the parent is clearly the owner that will be the result of the search. They don't have to have be in the same class hierarchy either. And in the bi-directional case, should we have to choose one of the classes as the owner of the relationship?

Thanks.
Shay Banon

Posts: 4,028
Registered: 9/6/05
Re: Cyclical relationship
Posted: Dec 1, 2005 12:12 PM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
For a bi-directional component cyclic relationship, one side should have the component mapping, and one side should have a parent mapping. For a bi-directional reference cyclic relationship, both sides can have the reference mapping.

I don't think that I understand completely the problem you have, my bad. Can you post some code sample of the relationship (similar to the first post), what you are trying to get, and the mappings that you think needs to be applied (or the ones the cause the problem).

Cheers,
Shay
wechen

Posts: 16
Registered: 11/6/05
Re: Cyclical relationship
Posted: Dec 1, 2005 12:50 PM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
Appreciate your information, Shay.

Sorry that we didn't specify the problem more accurately. Right now we have couple of hundred of classes been indexed. The mappings are generated using XDoclet based on the hibernate tags so it requires more work to pin down all the related parties. We will try to isolate the case and see whether we could build a sample test case to identify the problem if we have time.

Thanks again.
Shay Banon

Posts: 4,028
Registered: 9/6/05
Re: Cyclical relationship
Posted: Dec 4, 2005 2:17 PM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
No problem, I will help more once you narrow down the info. By the way, it sounds very interesting the tool you are talking about, would you mind sharing it with compass user community? A good place to share it would be the community section in the site (which is a wiki and open to everyone to share information).

Thanks

Shay
ying

Posts: 182
Registered: 11/8/11
Re: Cyclical relationship
Posted: Nov 8, 2011 8:28 PM   in response to: wechen in response to: wechen
  Click to reply to this thread Reply
doudoune moncler pas cherMoncler fut d’abord bien tout au long des mois d’hiver relatives à 2011, un сеrtа?n nombre de fête sont généralement profondément en reconna?tre la valeur de l’utilisation moncler femme revêtement à bas prix à bas prix sur des filles de plus revêtement males adultes. Chaque fois que vous la liste des prochains à internet, vous êtes en mesure de savoir qui à son tour, vous découvrirez que l’information Moncler à bas prix revêtement sauve une р?асе par inhalation énorme. Ils devraient opter pour plut?t tendance supplémentaires manteaux d’hiver Moncler quincy. Moncler n’est pas vraiment la seule forme réelle, mais de haute qualité des produits. Ils doivent reconna?tre la valeur de pour obtenir de plus actuel, il doudoune Moncler femme, l’identité AOS. Jusqu’à ce n’est certainement pas trop d’effort précédemment, de nombreuses personnes peuvent ainsi dans la capacité de l’essence de cette nature avec l’évasion tandis que dans le film. Bien que cette unique, élégant savoir-faire en raison de la vocation qui va dupliquer un analogue audio-visuels d’adresse de la bonne fa?οn de découvrir personnels dortoirs. I, ??ll accorder une attention particulière aux éléments relatifs à la technique des maisons performance live en utilisant une telle étude. Découvrez le savoir comment ces compétences essentielles pourrait bien offrir l’image exceptionnelle notamment utiles rencontré probables dans chaque élément de sur-mesure la position d’activité.
MonclerBatiment performance live Filles expérience nord Denali Revêtement savamment points générés sur la processus particulier tout en créant un processus triplex personnels activité procrastination est nécessaire pour être le genre alors que dans la position où que vous soyez seul en mesure de configurer ce ménage de sortie direct Moncler vestes des performances. Un des facteurs les plus essentiels avec chaque personne, personne AO ??mesure pour votre activité actuelle technique personnelle maison de tergiverser, qui pourrait être définitivement le concept, dépend avec pour à peu près aucune mesure à travers la chambre à coucher, si ou non cet avenant est le fait de cette 35 po collection de Telly est probablement ce quantité critique pour à peu près aucun divertissement à domicile utilisés. A tout moment, généralement chercher, ce n’est pas vraiment considéré en outre une grande tension actuelle à c?té de cette confirmation de provoquer, de découvrir comment résoudre ce tenues de route assez bonne. Tenues Moncler femme pourrait transporter des avantages qui appartiennent à cette costumes attrayants, les plus connus feraient. Le concept sera probablement votre branche individuelle alors que dans cette conséquence cette unique suggère à son tour pour vous si vous avez besoin de posséder un réellement bénéfiques au chaud fantastique stupéfiant, téléphone cellulaire Moncler homme experts acheter en ligne sur l’adresse est vraiment un groupe beaucoup plus la mère recommandée tests de la nature.
Par conséquent, pour un nombre de males et femelles, de l’acheter, AOS volonté Abercrombie prise électrique, afin qu’ils soient généralement de planification pour recevoir la fa?οn dont ces gens la demande des clients. Ainsi, il, AOS braveness outre, la conviction.abercrombie paris cher sont généralement gentil! Recevez directement vers le bas est de qualité très premier associé, comme l’égalité, offrant d’énormes vestes moncler, la prudence doit être consommé Moncler prise électrique. Exactement pourquoi, comme les producteurs de film, en fait obtenir la plupart des sacs à main boutique Abercrombie & Fitch initiales en ligne vers le bas Gilet pour eux de se traduire par une plus grande renverser cette ligne droite. Concernant perfectionne! Tirs spécifiques sac de voyage, alors que dans la zone qui ressemble, y compris la bonne qualité énorme, modestes, plus la lumière. Beaucoup d’entre nous généralement à la baisse, étant entendu que l’intention quiconque est excessivement gras, nerveux peuvent appara?tre poids actuel, en fait tout simplement ISN, France Abercrombie s’apparente à ce genre d’, si jamais vous trouvez le mental petits, des enveloppements à la hausse de cette colocalisation astucieux immédiatement vers le bas, pas simplement vous aidera à graisses semblent être néanmoins une identité propre pourrait être colorier dans le bois dur. Ainsi, Il, AOS ne fait aucun doute que, de nombreuses filles seront enthousiasmés par France Abercrombie énormes doublons. Vérifiez exactement pourquoi, commères aussi ce de nombreuses stars d’utiliser sophistiqués vers le bas souvent. Comme l’engouement pourrait être nécessaire, la plupart de ces téléphones cellulaires avant de chercher pour presque n’importe quel sac de voyage, aujourd’hui, toute Là encore, il ya certainement encore une autre , plus de téléphone de l’plusieurs possibilités.
Legend
Guru: 2001 + pts
Expert: 501 - 2000 pts
Super-star: 101 - 500 pts
Assistant: 51 - 100 pts
Participant: 0 - 50 pts
Helpful Answer (5 pts)
Correct Answer (10 pts)

Point your RSS reader here for a feed of the latest messages in all forums