@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里使用自身的方法的更多相关文章

  1. jquery里互为逆过程的方法

    jquery里互为逆过程的方法reverse 在jquery里,有不少互为逆过程的方法,如parent()与children(),parents()与find(),first()和last()等,这些 ...

  2. PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)

    PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr;  //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...

  3. PHPnow开启PHP扩展里openssl支持的方法

    PHPnow 是 Win32 下绿色的 Apache + PHP + MySQL 环境套件包.简易安装.快速搭建支持虚拟主机的 PHP 环境.更多介绍<PHP服务套件 PHPnow1.5.6&g ...

  4. js模仿jquery里的几个方法parent, parentUntil, children

    有时工作需要, 也是接着上一章的方法, 用js模仿jquery里的几个方法parent, parentUntil, children. function parent(node){ return no ...

  5. JS删除String里某个字符的方法

    关于JS删除String里的字符的方法,一般使用replace()方法.但是这个方法只会删除一次,如果需要将string里的所以字符都删除就要用到正则. 1 2 3 4 var str = " ...

  6. jquery里正则的使用方法及常用的正则验证

    本文是一篇关于jquery使用正则来验证输入,及一些常用验证规则的基础文章,适合新手. 假设我们的网页里有这样的一个表单: <input id="aijquery" type ...

  7. JavaScript里值比较的方法

    JavaScript里值比较的方法 参考资料 一张图彻底搞懂JavaScript的==运算 toString()和valueof()方法的区别 Object.is 和 == 与 === 不同 == 运 ...

  8. 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的返回值自动进行各种序列化处理(序列化为 ...

  9. Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密

    Javascript中双等号(==)隐性转换机制   在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否 ...

随机推荐

  1. float数据在内存中是怎么存储的 AND IEEE754测试程序

    float类型数字在计算机中用4个字节存储.遵循IEEE-754格式标准: 一个浮点数有2部分组成:底数m和指数e 底数部分 使用二进制数来表示此浮点数的实际值指数部分 占用8bit的二进制数,可表示 ...

  2. 简单修改hosts文件加快打开网页速度

    这个电脑小技巧的帖子菲菲博客分享如何通过简单一招利用修改系统的hosts文件来实现有效加快浏览器打开网页的速度.尤其是网络繁忙时DNS服务器负担加重的时候效果特别明显,有兴趣就和菲菲一起来学习一下吧, ...

  3. Spring的类型转换器

    spring有2种类型转换器,一种是propertyEditor,一种是Converter. 第一种属性编辑器用法见Spring的属性编辑器的章节.如果2种转换器都适用,那么究竟会适用哪种呢?Spri ...

  4. Kali Linux 2016.2发布提供虚拟机以及系统镜像下载

    Kali Linux 2016.2发布提供虚拟机以及系统镜像下载   Kali Linux 2016.2发布提供虚拟机以及系统镜像下载,本次Kali Linux 2016.2提供了五种桌面模式,分别为 ...

  5. NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D)

    NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D) 使用NGUI创建的Camera参数为Simple 2D的UI,会在游戏的场景中生成1个名为UI Root( ...

  6. 回文串+回溯法 URAL 1635 Mnemonics and Palindromes

    题目传送门 /* 题意:给出一个长为n的仅由小写英文字母组成的字符串,求它的回文串划分的元素的最小个数,并按顺序输出此划分方案 回文串+回溯:dp[i] 表示前i+1个字符(从0开始)最少需要划分的数 ...

  7. DP ZOJ 3872 Beauty of Array

    题目传送门 /* DP:dp 表示当前输入的x前的包含x的子序列的和, 求和方法是找到之前出现x的位置(a[x])的区间内的子序列: sum 表示当前输入x前的所有和: a[x] 表示id: 详细解释 ...

  8. POJ2516 Minimum Cost(最小费用最大流)

    一开始我把每个店主都拆成k个点,然后建图..然后TLE.. 看题解= =哦,愚钝了,k个商品是独立的,可以分别跑k次最小费用最大流,结果就是k次总和.. #include<cstdio> ...

  9. BZOJ2675 : Bomb

    首先通过不断翻转坐标系,假设三个点以横坐标为第一关键字,纵坐标为第二关键字排序后A在B前面,B在C前面. 那么只需要处理以下两种情况: 1.B的纵坐标在AC之间,这时三个点的距离和为$2((x_C+y ...

  10. Java中的线程

    http://hi.baidu.com/ochzqvztdbabcir/item/ab9758f9cfab6a5ac9f337d4 相濡以沫 Java语法总结 - 线程 一 提到线程好像是件很麻烦很复 ...