– Start
除了 @EmbeddedId,我们还可以通过 @IdClass 来定义复合主键。
package shangbo.hibernate.demo006;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
@Entity
@IdClass(BookPK.class)
public class Book {
@Id
private String bookName;
@Id
private String author;
private String publisher;
public Book() {
}
public BookPK getPk() {
return new BookPK(bookName, author);
}
public void setPk(BookPK pk) {
this.bookName = pk.getBookName();
this.author = pk.getAuthor();
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
}
package shangbo.hibernate.demo006;
import java.io.Serializable;
import java.util.Objects;
// 需要定义一个主键类并实现序列化接口
public class BookPK implements Serializable {
private static final long serialVersionUID = 8764734968205185910L;
private String b