假设我有这样的课程
@Entity
public class Customer implements Serializable {
private int id;
private String firstName;
private String lastName;
private Referee referee;
private Collection<Address> addresses;
private Collection<Account> accounts;
.....
} //end of class Customer
@Entity
public class Referee implements Serializable {
private int id;
private String name;
private String comments;
....
} //end of class Referee
@Entity
public class Account implements Serializable {
private int id;
private double balance;
private String accountType;
...
}
@Entity
public class Address implements Serializable {
private int id;
private String addressLine;
private String country;
private String postCode;
...
}
现在,如果我在名称Customer的数据库中创建表。那么我将使用哪种类型Referee
,Collection<Address>
和Collection<Account>
。就像我创建列id一样,那么它的类型将是INTEGER
,字符串更改为VARCHAR
但是我用于收集和裁判的类型是什么?
感谢
答案 0 :(得分:0)
裁判字段在数据库中是整数,因为它必须存储类型为int的Referee类的id字段。
收藏也将基于班级的ID。对于1到N的关系,可以使用N侧的列。因此,如果客户有多个地址但地址永远不属于一个客户,那么您可以将客户的ID存储在地址表中以存储关系。如果它是N到M,您将需要一个额外的所谓的连接表,它存储客户ID +地址ID的配对。同样的帐户故事。
很多JPA提供商可以为你生成表格,看看他们的手册如何。如果你是JPA的新手,你应该得到一本关于它的好书。一些教程不会给你足够深入的知识来使用它。我个人已经阅读了Pro EJB 3:Java Persistence API。
在学习JPA时,netbeans IDE可以提供很大的帮助,并且它会为您提供许多有用的提示来注释您的实体。例如,它会注意到您的集合需要额外的注释,并且会为您提供一对多或多对多的选择以及单向或双向。