`
旭少版
  • 浏览: 85386 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

jeecg随笔 -- 实体关联属性的设计(add方法)

阅读更多
在 add 方法里,生成器生成的原始代码很简单

Json j = new Json();
		try {
			****Service.add(****Page);
			j.setSuccess(true);
			j.setMsg("添加成功!");
		} catch (Exception e) {
			j.setMsg("添加失败!");
			logger.error(ExceptionUtil.getExceptionMessage(e));
		}
		writeJson(j);


而在 service里 也写得很简单
****Entity ****Entity = new ****Entity();
		BeanUtils.copyProperties(****Page, ****Entity);

		****EntityDao.save(****Entity);


这样写,对于String 和integer的属性而言,毫无压力
但是如果涉及到对象关联,我们就会在 ****Page 里声明对应的对象,然后进行关联
因此在保存的时候,根据双属性的对象映射下,只用作外键属性的字段是无法进行 insert操作的.
因此只能通过对象进行insert操作
所以,需要有专门的判断,如果设计为可空外键,前台没有约束的话,外键是可以为 null 值的
如果当外键写入出错的话,会出现

No row with the given identifier exists 异常
解决办法如下:
http://fengzhiyin.iteye.com/blog/227124

为了确保这样的异常产生,在系统内的判断是必须滴
而这个需要判断的属性是根据需要写入的外键来决定

ps:
直接使用代码生成的外键写入是绝对可行的
但是这样感觉不是很OO,感觉是面向数据库的一种POJO
个人觉得,不管是哪一种,如果需要拿到主表对应的外键表,始终是需要在某一个地方加入一段代码
OO的方式,可以直接使用对象关系来进行操作
而面向数据库的方式,则需要在需要的地方get一次
看个人爱好吧....
我觉得都可以
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics