创建主键类,@Embeddable 实现 Serializable 重写 equals和hashCode方法
package com.lesson1; import java.io.Serializable; import javax.persistence.Embeddable; @Embeddable public class UserPk implements Serializable{ @Override public boolean equals(Object obj) { // TODO Auto-generated method stub return super.equals(obj); } @Override public int hashCode() { // TODO Auto-generated method stub return super.hashCode(); } /** * */ private static final long serialVersionUID = 1L; private String id1; private String id2; public String getId1() { return id1; } public void setId1(String id1) { this.id1 = id1; } public String getId2() { return id2; } public void setId2(String id2) { this.id2 = id2; } }
实例类主键字段@EmbeddedId
package com.lesson1; import javax.persistence.EmbeddedId; import javax.persistence.Entity; @Entity public class User { private UserPk userPk; @EmbeddedId public UserPk getUserPk() { return userPk; } public void setUserPk(UserPk userPk) { this.userPk = userPk; } private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
执行时生成的sql
Hibernate:
create table User (
id1 varchar(255) not null,
id2 varchar(255) not null,
name varchar(255),
primary key (id1, id2)
)