在serviceImpl里使用自身的方法
@Service("tbLeaveRegisterService")
@Transactional
public class TbLeaveRegisterServiceImpl extends CommonServiceImpl implements TbLeaveRegisterServiceI {
@Autowired
private tbLeaveRegisterService tbLeaveRegisterService;//类似这种情况会如果需要在这个类里使用自身注解的方法,一定要使用this,而不要定性的去用这个类,因为在自身这里注解还没住进去,所以你如果使用了这个将报空指针。
@Autowired
private TbStudentServiceI tbStudentService;
另外说一下关于hibernate的几张表关联使用
先是
<t:dgCol title="主键" field="id" hidden="false" queryMode="single" width="120"></t:dgCol>
<t:dgCol title="班级" align="center" field="depart.departname" hidden="true" query="false" queryMode="single" width="80"></t:dgCol>
一个是主体id 一个是外键id(depart_id)而control需要对分别两个ID赋值并给予不同的modelandvidel。
/**
* 请假新增页面跳转
*
* @return
*/
@RequestMapping(params = "goAddLeave")
public ModelAndView goAddLeave(TbLeaveRegisterEntity tbLeaveRegister, HttpServletRequest req) {
String studentid = oConvertUtils.getString(req.getParameter("studentid"));//学生id
TbStudentEntity student=tbStudentService.getEntity(TbStudentEntity.class, studentid);
/*String departid = oConvertUtils.getString(req.getParameter("departid"));*/
if (StringUtil.isNotEmpty(tbLeaveRegister.getId())) {
tbLeaveRegister = tbLeaveRegisterService.getEntity(TbLeaveRegisterEntity.class, tbLeaveRegister.getId());
req.setAttribute("tbLeaveRegisterPage", tbLeaveRegister);
}
/*tbLeaveRegister.setStudent(student);*/
req.setAttribute("tbStudentPage", student);
/*String departid = oConvertUtils.getString(student.getDepart().getId());*/
/*TSDepart depart=systemService.getEntity(TSDepart.class, departid);
student.setDepart(depart);*/
return new ModelAndView("com/biber/yxyz/leave/tbLeaveRegister-addLeave");
}
/**
* 添加请假登记表
*
* @param ids
* @return
*/
@RequestMapping(params = "doAddLeave")
@ResponseBody
public AjaxJson doAddLeave(TbLeaveRegisterEntity tbLeaveRegister, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
message = "请假登记表添加成功";
try{
String studentid = oConvertUtils.getString(request.getParameter("student.id"));//学生id
String departid = oConvertUtils.getString(request.getParameter("depart.id"));//部门id
TbStudentEntity student=tbStudentService.getEntity(TbStudentEntity.class, studentid);
TSDepart depart=systemService.getEntity(TSDepart.class, departid);
student.setMatter("1");
TSUser user = ResourceUtil.getSessionUserName();
tbLeaveRegister.setCreateuser(user.getUserName());
tbLeaveRegister.setStudent(student);
tbLeaveRegister.setDepart(depart);
student.setLeave(tbLeaveRegister);
tbLeaveRegisterService.save(tbLeaveRegister);
tbStudentService.saveOrUpdate(student);
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "请假登记表添加失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
整个流程差不多是这样。
实体类
@JsonIgnore //getList查询转换为列表时处理json转换异常
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "departid")
public TSDepart getDepart() {
return depart;
}
public void setDepart(TSDepart depart) {
this.depart = depart;
}
@JsonIgnore //getList查询转换为列表时处理json转换异常
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "studentid")
public TbStudentEntity getStudent() {
return student;
}
public void setStudent(TbStudentEntity student) {
this.student = student;
}
过程中主要name不要错就不会有问题了。
在serviceImpl里使用自身的方法的更多相关文章
- jquery里互为逆过程的方法
jquery里互为逆过程的方法reverse 在jquery里,有不少互为逆过程的方法,如parent()与children(),parents()与find(),first()和last()等,这些 ...
- PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)
PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr; //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...
- PHPnow开启PHP扩展里openssl支持的方法
PHPnow 是 Win32 下绿色的 Apache + PHP + MySQL 环境套件包.简易安装.快速搭建支持虚拟主机的 PHP 环境.更多介绍<PHP服务套件 PHPnow1.5.6&g ...
- js模仿jquery里的几个方法parent, parentUntil, children
有时工作需要, 也是接着上一章的方法, 用js模仿jquery里的几个方法parent, parentUntil, children. function parent(node){ return no ...
- JS删除String里某个字符的方法
关于JS删除String里的字符的方法,一般使用replace()方法.但是这个方法只会删除一次,如果需要将string里的所以字符都删除就要用到正则. 1 2 3 4 var str = " ...
- jquery里正则的使用方法及常用的正则验证
本文是一篇关于jquery使用正则来验证输入,及一些常用验证规则的基础文章,适合新手. 假设我们的网页里有这样的一个表单: <input id="aijquery" type ...
- JavaScript里值比较的方法
JavaScript里值比较的方法 参考资料 一张图彻底搞懂JavaScript的==运算 toString()和valueof()方法的区别 Object.is 和 == 与 === 不同 == 运 ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...
- Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密
Javascript中双等号(==)隐性转换机制 在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否 ...
随机推荐
- android 制作自定义标题栏
1.在AndroidManifest.xml设置主题 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 2.在l ...
- achartengine 绘图表神器
http://code.google.com/p/achartengine/
- exec命令
exec 命令实例 find . -name "*.cc" -exec grep -P -n -H --color=auto "[^\w]main[^\w]" ...
- Objective-C专题,是学习iOS开发的前奏(转)
第一个OC的类 来源:http://www.cnblogs.com/mjios/archive/2013/04/06/3002814.html 本文目录 一.语法简介 二.用Xcode创建第一个OC的 ...
- 改变传统的开单模式------手持POS终端移动销售开单 移动进销存的利器
手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...
- BZOJ4361 : isn
设$f[i]$表示长度为$i$的不下降子序列的个数. 考虑容斥,对于长度为$i$的子序列,如果操作不合法,那么之前一定是一个长度为$i+1$的子序列,所以答案$=\sum_{i=1}^n(f[i]\t ...
- JavaBean中的get/set 的命名规范
最近的struts项目中遇到了这样的问题: 我的action中全局变量明明有getset方法,而且是自动生成的,但是在使用的时候,总是说找不到这个属性的getset方法,取不到从jsp传来 的值, ...
- Codeforces Round #189 (Div. 2) A. Magic Numbers
#include <iostream> #include <vector> #include <algorithm> #include <string> ...
- JavaScript_解决safari浏览器window.open无法实现的问题
解决 safari window.open 无法实现的问题 先说下问题是什么吧: safari 中没办法在回调函数里面执行window.open, 原因是safari的安全机制将其阻挡了(具体的原因可 ...
- java开源网站
1.http://www.java1234.com 2.http://www.2cto.com/Soft/