hibernate中对联合主键数据保存的一种处理方式
来源:互联网 发布:英语歌教学软件 编辑:程序博客网 时间:2024/05/21 17:36
1、有二张表:CODE_TABLE和CODE_TABLE_TYPE,具体结构如下:
CREATE TABLE CODE_TABLE(TYPE_ID VARCHAR(12) NOT NULL,ID VARCHAR(8) NOT NULL,NAME VARCHAR(60) NOT NULL,DESC VARCHAR(300) NOT NULL, CONSTRAINT FK_CODE_TYPE FOREIGN KEY (TYPE_ID) REFERENCES CODE_TABLE_TYPE (ID),CONSTRAINT PK_CODE_TABLE PRIMARY KEY (ID, TYPE_ID))
CREATE TABLE CODE_TABLE_TYPE(ID VARCHAR(12) NOT NULL,NAME VARCHAR(60) NOT NULL, DESC VARCHAR(200) NOT NULL, ORDER INTEGER NOT NULL DEFAULT 0, CONSTRAINT PK_CODE_TYPE PRIMARY KEY (ID))
2、对应的实体BEAN如下:
(1)、CodeTableType.java
@Entity@Table(name = "CODE_TABLE_TYPE", uniqueConstraints = {})@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)@Operator()@EntityIsLog()public class CodeTableType implements Cloneable{@Listable(key="codetabletype.id",width=10,align="center")@Filter()private String id;@Listable(key="codetabletype.codeTableTypeName",width=12,align="left")@Filter()private String codeTableTypeName; @Listable(key="codetabletype.codeTableTypeDesc",width=20,align="left")@Filter()private String codeTableTypeDesc; private Set<CodeTable> codeTables=new HashSet<CodeTable>(); public CodeTableType(){}@Id@Column(name = "ID", unique = true, nullable = false, insertable = true, updatable = false,length = 12)@Order(value=1)public String getId() {return id;}public void setId(String id) {this.id = id;}@Column(name = "NAME", unique = false, nullable = false, insertable = true, updatable = true, length = 60)@Order(value=2)public String getCodeTableTypeName() {return codeTableTypeName;}public void setCodeTableTypeName(String codeTableTypeName) {this.codeTableTypeName = codeTableTypeName;} @Column(name = "DESC", unique = false, nullable = false, insertable = true, updatable = true, length = 200)@Order(value=4)public String getCodeTableTypeDesc() {return codeTableTypeDesc;}public void setCodeTableTypeDesc(String codeTableTypeDesc) {this.codeTableTypeDesc = codeTableTypeDesc;} @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "codeTableType")@Order(value=-1)public Set<CodeTable> getCodeTables() {return codeTables;}public void setCodeTables(Set<CodeTable> codeTables) {this.codeTables = codeTables;} }
(2)、CodeTable .java
@Entity@Table(name = "CODE_TABLE", uniqueConstraints = {})@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)@Operator()@IdClass(CodeTablePK.class)public class CodeTable{@Listable(key="codetable.id",width=10,align="center")@Filter()@Viewable()private String id;@Listable(key="codetable.codetabletype",width=12,align="left")private CodeTableType codeTableType;@Listable(key="codetable.name",width=10,align="left")@Filter()@Viewable()private String name;@Listable(key="codetable.desc",width=20,align="left")@Viewable()private String desc;public CodeTable(){}@Id@Column(name = "ID", unique = true, nullable = false, insertable = true, updatable = false,length = 8)public String getId() {return id;}public void setId(String id) {this.id = id;}@Id@ManyToOne(cascade = {}, fetch = FetchType.LAZY)@JoinColumn(name="TYPE_ID", unique = false, nullable = false, insertable = true, updatable = false)@Relation(key="id",title ="codeTableTypeName")public CodeTableType getCodeTableType() {return codeTableType;}public void setCodeTableType(CodeTableType codeTableType) {this.codeTableType = codeTableType;}@Column(name = "NAME", unique = false, nullable = false, insertable = true, updatable = true, length = 60)public String getName() {return name;}public void setName(String name) {this.name = name;}@Column(name = "DESC", unique = false, nullable = true, insertable = true, updatable = true, length = 600)public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;} }
(3)、CodeTablePK.java
@Embeddablepublic class CodeTablePK implements Serializable { private String id;private CodeTableType codeTableType;public CodeTablePK() {}public CodeTablePK(String id, CodeTableType codeTableType) {this.id = id;this.codeTableType = codeTableType;}@Column(name = "ID", unique = true, nullable = false, insertable = true, updatable = false,length = 8)public String getId() {return id;}public void setId(String id) {this.id = id;}@OneToOne(cascade = {}, fetch = FetchType.LAZY)@JoinColumn(name="TYPE_ID", unique = false, nullable = false, insertable = true, updatable = false)@Relation(key="id",title ="codeTableTypeName")public CodeTableType getCodeTableType() {return codeTableType;}public void setCodeTableType(CodeTableType codeTableType) {this.codeTableType = codeTableType;} }
3、对CODE_TABLE的操作
CodeTableType ct = codeTableTypeService.get(type);CodeTablePK pk = new CodeTablePK();pk.setCodeTableType(ct);pk.setId("AA");CodeTable obj = getHibernateTemplate().get(CodeTable.class, pk);
- hibernate中对联合主键数据保存的一种处理方式
- Hibernate对联合子类的实现
- hibernate中联合主键的一种写法
- Hibernate中主键的各种生成方式
- hibernate中联合主键的定义方式
- hibernate中一种可替代联合主键的设计模式
- Hibernate的中使用<generator>设置主键的生成方式
- Hibernate的主键生成方式
- Hibernate的主键生成方式
- Hibernate的主键生成方式
- Hibernate的主键生成方式
- SharedPerferences 保存数据,android提供用于保存简单配置信息,标记,用户数据的一种方式
- hibernate中主键的几种生成方式比较
- Hibernate中XML映射文件产生主键的方式
- Hibernate复合主键的处理
- Mybatis自定义主键增长的一种方式
- sql主键的一种形成方式
- Hibernate中处理无主键表的问题
- MessageFormat用法
- CSDN
- 为什么我做出了这道题,却一点都不高兴
- 链表数据结构与基本运算
- string char* const char* 转化
- hibernate中对联合主键数据保存的一种处理方式
- 腾讯面试总结
- 初步了解OBD
- LDA并行化实验(待完善)
- IOCP 浅析
- Mac下构建cocos-2dx for android
- tomcat开机启动
- 排序算法之选择排序
- PowerDesigner逆向工程Orcale11g方法