在serviceImpl里使用自身的方法

摘要:
@服务(“tbLeaveRegisterService”)@TransactionPublicClassTbLeaveRegisterServiceImplextendsCommonServiceImplImplementsTbLeave RegisterServiceI{@AutowiredprivatbLeaveRegistryServicetbLeaveRegistrySer

@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="班级" 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里使用自身的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇angularjs路由程序员不得不知的 Navicat 实用工具下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

如何在linux下安装idea

[通过正式安装包安装]http://www.jetbrains.com/在官方网站上下载相应版本。终极旗舰社区版本,将其解压缩到本地对应目录,然后执行/idea.sh命令。安装后,可以在启动程序中找到创意图标。...

C#基础系列过滤器与特性

过滤器和特性结合在一起,在方法上优雅地使用过滤器。3.在过滤器中,。NETFrameWork提供了两种类型:一种是提供给ASP的筛选器。NETMVC在命名空间下使用System.Web。另一个是提供给ASP的过滤器。NETWebApi在命名空间下使用System.Web.Http.Filters。这两种类型不能混合使用,否则无法拦截并生效。...

Java 安全之:csrf攻击总结

最近,我在维护一些旧项目。在调试期间,我发现请求被反复拒绝。我仔细查看了项目的源代码,发现存在csrftoken验证。我借此机会了解了csrf攻击,并将其总结成一篇论文。受攻击的网站无法阻止攻击。在整个过程中,攻击者无法获取受害者的登录凭据,只能“冒充”。CSRF攻击成功,因为服务器将攻击者发送的请求误认为是用户的请求。服务器通过验证请求是否携带正确的令牌来...

浅谈JEECG多数据源的使用

首先,我们将简要介绍JEECG是什么。JEECG主张简单的功能由代码生成器直接生成,复杂的业务由表单定制,业务流程由工作流实现和扩展,开发人员编写特殊的业务逻辑。让我们重点讨论JEECG3.5GA中多个数据源的使用。JEECG3.5提供多个数据源的功能。JEECG多数据源的设计直接使用Springjdbc连接,独立于Hibernate、Mybatis和其他持...

EasyPoi导入验证功能

1准备好要导入的Excel,注意Excel的标题要和domain中的@Excel一样1导入验证包支持˂!...

python中将xml格式转json格式

通常需要处理xml格式的文件或字符串。由于json格式处理的方便,第2步:第1步:安装工具包xmltodict,在命令行中输入:pipinstallxmltodict2,并在代码中使用xmltodict.parse(xml_str)进行处理,例如reload_json(xml_path):#获取xml文件xml_file=open(xml_paath,...