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,并且我希望它们有所不同,例如,我可以让 id 为 1 的 A 拥有 id 1 和 2 的 B,而拥有 id 2 的 A 拥有 id 1 和 2 的 B,这些 B都会有所不同,我该怎么做?我认为这与@ManyToOne 标签等有关,但我不知道该怎么做

  2. 之后,我想创建一个方法,例如

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

    那可以给我一个特定的B。我该怎么做?

先感谢您

4

1 回答 1

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();

希望这个答案对您有所帮助。:)

于 2013-06-03T03:15:49.240 回答