2011-08-24 6 views
0

J'ai une relation bidirectionnelle plusieurs à un. Lorsque je récupère l'objet parent de la table, tous les objets enfants devraient se faire récupérer, mais seul le premier est d'obtenir récupéré Le parent ressembleRelation @ManyToOne, JPA

@Entity 
public class xyz{ 
@OneToMany(mappedBy="xyz",cascade=CascadeType.PERSIST,fetch=FetchType.EAGER) 
private Set<zyx> zyxDO;} 

La classe enfant ressemble

public class zyx{ 
@ManyToOne 
@JoinColumn(name="id") 
private xyz xyzDO; 
} 

Est Y at-il une annotation où je peux récupérer toutes les lignes de la base de données sous-jacente

+0

Est-ce que cela se produit pour tous les enregistrements ou seulement certains? – Padmarag

Répondre

0

Que voulez-vous dire par récupérer toutes les lignes de la base de données sous-jacente? Vous récupérez uniquement les enfants dont la clé est définie par le parent. Notez également que le fait d'aller chercher peut facilement causer de grands problèmes de performance, car les enfants seront toujours récupérés, même si vous n'en avez pas besoin.

2

Peut-être que c'est une faute de frappe, mais la valeur de mappedBy devrait être le nom de l'attribut dans l'entité propriétaire qui pointe vers l'entité inverse, dans ce cas xyzDO. Peut-être parce que vous utilisez un ensemble au lieu d'une collection pourrait provoquer qu'un seul enfant est récupéré (si elles sont identiques).

0

Assurez-vous de définir les deux côtés des relations lors de l'ajout/de la définition de la relation.

Questions connexes