2013-06-02 98 views
0

這是一個初學者的問題,我試圖用玩的框架工作,我有一個問題,我似乎無法找出播放框架實體連接

可以說我有A和B級定義爲

package models; 
@Entity 
public class A extends Model { 
@Id 
Long idA; 
List<B> listofB; 
etc.. 
} 

package models; 
@Entity 
public class B extends Model { 
@Id 
Long idB; 
etc.. 
} 

我也有這兩類創建的取景器類

  1. 我希望A有多個B,我希望他們有所不同,例如,我可以讓A的ID爲1,B的ID爲1,ID爲2,A的ID爲2,B的ID爲1, 2,這些B都會不一樣,我該怎麼做? 我認爲這件事情關係到@ManyToOne標籤等,但我無法弄清楚究竟是如何做到這一點

  2. 在那之後,我想創建一個方法,如

    public B getB(Long idA, Long idB) { 
    ... 
    } 
    

    ,可以給我一個具體的B. 我該怎麼做?

預先感謝您

回答

0

美好的一天。

您想實現的數據庫結構無法實現。
您的代碼

package models; 
@Entity 
public class A extends Model { 
@Id 
Long idA; 
List<B> listofB; 
etc.. 
} 

package models; 
@Entity 
public class B extends Model { 
@Id 
Long idB; 
etc.. 
} 

記得

@Id 

將是你的主鍵。

你的問題建議你idB前是一個主鍵,不應該具有相同的值..

爲了能夠做到這一點,你可能需要做這種方式,

package models; 
@Entity 
public class A extends Model { 
@Id 
Long idA; 
List<B> listofB; 
etc.. 
} 

package models; 
@Entity 
public class B extends Model { 
@Id 
Long UID; 

Long idB; 
etc.. 
} 

而在去年,你的第二個問題, 試試這個

A a = A.find("idA = ?", someIdA).first(); 
B b = a.A.find("idB = ?", someIdB).first(); 

希望這個答案可以幫助你。 :)