如何将java引用类型映射到数据库列类型
假设我有这样的课如何将java引用类型映射到数据库列类型,java,jdbc,jpa-2.0,Java,Jdbc,Jpa 2.0,假设我有这样的课 @Entity public class Customer implements Serializable { private int id; private String firstName; private String lastName; private Referee referee; private Collection<Address> addresses; private Collection<Ac
@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实现了可序列化{
私有int-id;
私有字符串名;
私有字符串lastName;
私人裁判;
私人收藏地址;
私人收款账户;
.....
}//类末客户
@实体
公共类仲裁实现了可序列化{
私有int-id;
私有字符串名称;
私有字符串注释;
....
}//下课裁判
@实体
公共类帐户实现可序列化{
私有int-id;
私人双平衡;
私有字符串accountType;
...
}
@实体
公共类地址实现可序列化{
私有int-id;
专用字符串地址线;
私人国家;
私人字符串邮政编码;
...
}
现在,如果我在名为Customer的数据库中创建表。那么我将使用哪种类型作为类型裁判
,收藏
和收藏
。比如,如果我设置了列id,那么它的类型将是INTEGER
,字符串更改为VARCHAR
,但是我使用什么类型来收集和引用?
谢谢数据库中的仲裁字段将是整数,因为它必须存储int类型的仲裁类的id字段 集合还将基于类的id。对于1到N关系,可以使用N侧的列。因此,如果一个客户有多个地址,但一个地址永远不属于多个客户,那么您可以将该客户的id存储在地址表中以存储关系。如果是N到M,您将需要一个额外的所谓连接表,该表存储两对客户id+地址id。帐户的情况也一样 顺便说一句,许多JPA提供商可以为您生成这些表,请参阅他们的手册 如果你是JPA新手,你应该得到一本关于它的好书。几篇教程并不能给你足够的深度知识来很好地使用它。我个人读过ProEJB3:JavaPersistenceAPI
当学习JPA时,netbeans IDE可以是一个很大的帮助,它将为您注释实体提供许多有用的提示。例如,它会注意到您的集合需要额外的注释,并为您提供一对多或多对多以及单向或双向的选择。我遵循EJB3开发者指南。此外,我还将学习本教程[链接]。是的,我是JPA的新手。我在客户和地址之间有多对多关系,在客户和帐户之间有1对多关系。