2013-08-29 55 views
0

如何返回與JPA中的父級有關係的實體列表?使用JPA加入從父實體返回子實體

我有一個用戶實體在名爲pets的屬性上有一個@OneToMany映射。子實體是Pet類型的。這只是一種單向關係。

如何在JPA中編寫一個返回給所有給定用戶的寵物的連接?

回答

0

所以你有幾個選項。

您可以使用以下注釋:

@ManyToOne 
@JoinColumn 

這是你將如何使用它。

public class User 
{ 
    // your standard fields/columns in database 

    @OneToMany (Fetch can be of eager/ lazy) 
    @JoinColumn (name="column to join on", referencedColumnName="column to join on in parent class") 
    private List<Pet> pets; 
} 


public Class Pet 
{ 
    //data fields 
} 

本質上發生的是在查詢用戶對象時填充的寵物列表。

使用JPA查詢數據庫。

所以我猜你的用戶會有某種類型的ID,寵物表會有一些Id鏈接到用戶。

所以我們會做以下

Select * from user where user_id = ?; 

這將基本上給你的用戶對象

Select * from pet where owner_user_id = ? 

這將基本上給你屬於該用戶的所有寵物。

然後你可以自己填充你的對象。

我不是100%確定你的桌子是怎麼樣的,但我希望能從它的角度給它一個刺。