这是一个初学者的问题,我正在尝试使用Play框架,我有一个我似乎无法弄清楚的问题
假设我将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..
}
我也在两个类中都创建了finder类
我希望A有多个B,我希望它们不同,例如,我可以让A的id为1,B为id为1和2,A为id为2,B为id 1和2,这些B都会有所不同,我该怎么做? 我认为它与@ManyToOne标签等有关,但我无法确切知道如何做到这一点
之后,我想创建一个方法,如
public B getB(Long idA, Long idB) {
...
}
可以给我一个具体的B. 我该怎么做?
提前谢谢
答案 0 :(得分: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();
希望这个答案可以帮到你。 :)