Hibernate关联管理配置表
作者:网络转载 发布时间:[ 2015/10/12 13:39:43 ] 推荐标签:软件测试管理
用hibernate开发时,建好主表后发现有一些配置属性需要添加,而有不想更改主表结构,这是只需要建一个配置表,在主表的model配置中配置上配置表的key和value行,如:
主表:CREATE TABLE `SKILL_GROUP` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`SKILL_GROUP` varchar(36) NOT NULL,
`TYPE` int(11) NOT NULL,
`WORK_END_TIME` varchar(10) DEFAULT NULL,
`WORK_START_TIME` varchar(10) DEFAULT NULL,
`SP_ID` varchar(36) DEFAULT NULL,
`USER_ID` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `SP_ID` (`SP_ID`),
KEY `FK508C0AD1AA67812B` (`SP_ID`),
KEY `FK508C0AD11DD0822B` (`USER_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
配置表: CREATE TABLE `SKILL_CONFIGURATION` (
`CONFIG_KEY` varchar(36) NOT NULL,
`CONFIG_VALUE` varchar(36) NOT NULL,
`SKILL_GROUP_ID` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在主表的model中配置上(TskillGroup):
private Map<String, String> configMap = new HashMap<String, String>(); //与技能组相关的配置,用map存储
@ElementCollection(fetch=FetchType.EAGER)
@MapKeyColumn(name = "CONFIG_KEY") //配置属性的key值
@Column(name = "CONFIG_VALUE", length = 290) //配置属性的值
@CollectionTable(name = "SKILL_CONFIGURATION", //配置表表名
joinColumns = @JoinColumn(name = "SKILL_GROUP_ID")) //存放主表的主键
public Map<String, String> getConfigMap() {
return configMap;
}
public void setConfigMap(Map<String, String> configMap) {
this.configMap = configMap;
}
在对对象TskillGroup进行增删改查时,用以下方法同步配置表属性:
TskillGroup tsg = new TskillGroup();
......把对象属性set进去
添加对象:skillGroupDao.save(tsg);
同步配置属性表数据:tsg.getConfigMap().put(配置属性的key,配置属性值 );
修改对象:TskillGroup tsg = skillGroupDao.get(TskillGroup.class, skillGroup.getId());
.....把新修改的值set到对象中
同步配置属性表数据:tsg.getConfigMap().put(配置属性的key,配置属性更新的值 );
删除对象:TskillGroup tsg = skillGroupDao.get(TskillGroup.class, sgId);
删除此对象对应的所有配置属性:tsg.getConfigMap().clear();
查询对象:List<TskillGroup> l = skillGroupDao.find(hql, params);
循环list得到TskillGroup对象tsg
查出tsg对象对应的配置属性:tsg.getConfigMap().get(配置属性的key)
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11