JPA配置一对多双向并且外键中含联合主键
2013-03-06 15:19
330 查看
最近开发了个案子
关于一对多映射,并且多的一方主键为复合主键
完整code如下
1.主体类
关联的多的一方的对象如下:
复合主键编写如下:
其中的get和set方法均省略。
关于一对多映射,并且多的一方主键为复合主键
完整code如下
1.主体类
@Entity @Table(name="INFO_GRP") public class InfoGrp extends GenericBean implements IDataObject{ private static final long serialVersionUID = 1918446199175160468L; @Id @Column(name = "grpId", unique=true, nullable = false, columnDefinition = "varchar(10)") private String grpId; @Column(name = "grpname", nullable = true, columnDefinition = "varchar(75)") private String grpName; @Column(name = "creator", nullable = true, columnDefinition = "varchar(10)") private String creator; @Column(name = "createTime",nullable = true) @Temporal(TemporalType.TIMESTAMP) private Date createTime; @Column(name = "updater", nullable = true, columnDefinition = "varchar(10)") private String updater; @Column(name = "updateTime",nullable = true) @Temporal(TemporalType.TIMESTAMP) private Date updateTime; @Column(name = "deleted", nullable = true, columnDefinition = "varchar(1)") private String deleted; @Column(name = "isApprove", nullable = true, columnDefinition = "varchar(1)") private String isApprove; @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="id.infoGrp") private Set<InfoGrpPermission> infoGrpPermissions = new HashSet<InfoGrpPermission>(); }
关联的多的一方的对象如下:
@Entity @Table(name="INFO_GRP_PERMISSION") public class InfoGrpPermission extends GenericBean implements IDataObject{ private static final long serialVersionUID = 1918446199175160468L; @EmbeddedId private InfoGrpPermissionId id; @Column(name = "creator", nullable = true, columnDefinition = "varchar(10)") private String creator; @Column(name = "createTime",nullable = true) @Temporal(TemporalType.TIMESTAMP) private Date createTime; @Column(name = "updater", columnDefinition = "varchar(10)") private String updater; @Column(name = "updateTime",nullable = true) @Temporal(TemporalType.TIMESTAMP) private Date updateTime; @Column(name = "deleted", nullable = true, columnDefinition = "varchar(1)") private String deleted; }
复合主键编写如下:
@Embeddable public class InfoGrpPermissionId implements Serializable{ private static final long serialVersionUID = 1918446199175160468L; @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER) @JoinColumn(name = "grpId", nullable = false, columnDefinition = "varchar(10)") private InfoGrp infoGrp; @Column(name = "permission", nullable = false, columnDefinition = "varchar(10)") private String permission;}
其中的get和set方法均省略。
相关文章推荐
- JPA 一对一配置,复合主键均为外键
- HIBERNATE一对一双向外键联合主键关联
- Hibernate关系映射级别注解(一对一双向外键关联、一对一双向外键联合主键)
- JPA联合主键并做从表外键
- hibernate 联合主键生成机制(组合主键XML配置方式)
- Hibernate 联合主键的配置方法实例
- 添加以联合主键之一作为外键的约束时,出错:此列列表的唯一关键字或主键不匹配
- Hibernate xml配置方法 之 联合主键
- hibernate如何配置联合主键
- 联合外键作主键 @EmbeddwdId
- 在Hibernate中使用联合主键作为外键
- 两个属性定义一个主键:JPA中的联合主键
- hibernate的一对一主键双向映射关系和外键双向映射关系(一)
- Hibernate一对一主键双向关联映射(xml配置)
- hibernate联合主键生成策略以及一对多配置
- JPA联合主键的使用
- hibernate联合主键配置
- Hibernate xml配置方法之联合主键
- hibernate 联合主键配置 sid自增
- Hibernate联合主键怎样在xml中配置