从play1.2.4开始,支持复合主键。
现在我们定义一个用户model,假设用用户姓名作为ID(其实这是不科学的,重名的人太多了),用户姓名有firstName 和lastName。定义这两个字段为复合主键。
具体操作如下:
首先建立一个UserId,将复合主键中所需要包含的字段都加到这里面去
package models;
import javax.persistence.Embeddable;
import java.io.Serializable;
@Embeddable
public class UserId implements Serializable {
public String firstName;
public String lastName;
}
然后咱们就可以建立我们entity了
package models;
import play.db.jpa.GenericModel;
import play.db.jpa.Model;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
@Entity
public class UserCompositeId extends GenericModel {
@EmbeddedId
public UserId id;
public Integer age;
}
哦了。。。。不过这不过是一个简单的演示,其实hibernate还提供了@idclass 建立复合主键。便于码农快速解决问题,先出个简明版。之后再出个详细解说版本。
参考: