双主键为什么不能设置成功呢?
我想设置两个主键,一个是int类型的,一个是String类型的.但是我把@GenericGenerator这个注解加在String类型的属性上了也设置了长度,但是DDl显示依然是自动增长.而且我int类型的自动增长没有生效.然后数据库变没有创建成功.大家能帮我看看是什么原因吗?谢谢了,
我想设置两个主键,一个是int类型的,一个是String类型的.但是我把@GenericGenerator这个注解加在String类型的属性上了也设置了长度,但是DDl显示依然是自动增长.而且我int类型的自动增长没有生效.然后数据库变没有创建成功.大家能帮我看看是什么原因吗?谢谢了,
2017-07-03
你要设置这两个主键的话,需要把这两个主键单独放到一个主键类中啊,亲,例如下面这样:
/* * 学生主键类 */ @Embeddable public class StudentPk implements Serializable{ /** * 生成一个版本序列号 */ private static final long serialVersionUID = 1L; //身份证Id号码 @Column(length=18) private String personId; //学号 @Column(length=8) private String studentId; public StudentPk() { super(); } public StudentPk(String personId, String studentId) { super(); this.personId = personId; this.studentId = studentId; } public String getPersonId() { return personId; } public void setPersonId(String personId) { this.personId = personId; } public String getStudentId() { return studentId; } public void setStudentId(String studentId) { this.studentId = studentId; } @Override public int hashCode() { // TODO Auto-generated method stub return super.hashCode(); } @Override public boolean equals(Object obj) { // TODO Auto-generated method stub return super.equals(obj); } }
最后在实体类中写,如下:
@EmbeddedId private StudentPk pk; public StudentPk getStudentPk() { return pk; } public void setStudentPk(StudentPk pk) { this.pk = pk; }
你再去调试调试,祝你成功,学有所成,步步高升,开开心心,啦啦啦啦啦~~
举报