hibernate 视图无主键,联合主键的使用
使用hibernate时,视图无主键的时候会报异常,随意使用一个字段作为主键,在查询操作时,如果该字段不是unique的,则会出现数据不准确的问题,这个时候可以考虑使用联合主键
-
创建一个包含联合主键的类,并在类上注释@Embeddable
/** * user_role视图的联合主键 */ @Embeddable @Setter @Getter public class UserRoleCompositeId implements Serializable{ private static final long serialVersionUID = -3304319243957837925L; @Column(name = "userid") int userid; @Column(name = "sysid") int sysid; @Column(name = "sysname") String sysname; }
-
在entity类中引用联合主键,并在引用上注解@Id
@Entity
@Table(name = "user_role")
@Setter
@Getter
public class UserRoleView {
@Column(name = "systype")
String systype;
@Column(name = "perkey")
String perkey;
@Id
private UserRoleCompositeId userRoleCompositeId;
}