表SQL:
create table u01
(
USER_NAME varchar(50) binary not null,
USER_PASSWORD varchar(50),
USER_EMAIL varchar(50) not null,
USER_SHOWNAME varchar(50),
USER_LEVER int,
USER_AGE int,
USER_SEX varchar(10),
USER_REMARK varchar(255),
USER_STATUS varchar(5),
primary key (USER_NAME, USER_EMAIL)
);
DbUser类:
@Entity
@Table(name="u01")
public class DbUser {
@Column(name="USER_NAME")
private String USER_NAME;
private String USER_PASSWORD;
private String USER_EMAIL;
private String USER_SHOWNAME;
private Integer USER_LEVER;
private Integer USER_AGE;
private String USER_SEX;
private String USER_REMARK;
private String USER_STATUS;
@OneToMany(targetEntity=DbUpload_Info.class,mappedBy="DbUser")
private Set<DbUpload_Info> upload = new HashSet<>();
...<省略getter和setter>
已经:<mapping class="Domain.DbUser"/>
请问这样设置正确吗?
主键只有一个,最好是id
可是一般要确定数据的唯一性,需要出现多个主键,这种情况应该没办法避免吧。
真实的项目中,每一个数据表表结构只有一个主键吗?
我是一个学生,没有接触过真实的公司项目。
@隐语者: 不好意思,最近没怎么登录。你所说的这个问题其实很简单,确定数据的唯一性,只需要一个主键就好了,就比如学生系统中每一个学生的信息,我们把学号看成一个主键,这个主键是唯一的,或者你再想想一个学生可能是两个学号吗?其次学生属于不同的班级,他会有一个外键来管理这些班级的。所以说主键唯一,外键不唯一。如果不明白的话,可以继续问我
没有为实体指定标识符,主键注解
已经解决问题:多个主键要写多个@ID标注
– 隐语者 6年前@Entity
@Table(name="u01")
public class DbUser implements Serializable {
@Id
@Column(name="USER_NAME")
private String USER_NAME;
@Id
@Column(name="USER_EMAIL")
private String USER_EMAIL;
@Column(name="USER_PASSWORD")
private String USER_PASSWORD;
private String USER_SHOWNAME;
private Integer USER_LEVER;
private Integer USER_AGE;
private String USER_SEX;
private String USER_REMARK;
private String USER_STATUS;