1、配置多对一
教师表中的zc、zjz对应的是字典表中的id。
所以外键要放在教师表中,关联外键约束
要关联的主键之间的类型要一致,如教师表中的:zjz、zc,字典表中的id应是一个类型的,否则就会报错,zjz,zc里只能放字典表中id字段里的值,更改类型。zjz、zc要做关联用
pojo类中的Teacher.java中的类型也要做出更改,并修改他的get、set方法
修改好后多对一的准备工作也就完成了
很多个老师对应一个职称,一个专兼职(多对一)在pojo下:
因为是多对一所以需要添加这两个属性
//多对一 ---->Teacher.hbm.xml 并给这两添加get、set方法
private Dict zcDict;//职称
private Dict zjzDict;
添加完之后需要在hbm.xml中配置他两的映射方法
//因为zcDict的类型是Dict所以需要一个class
//column是用来指定外键的id值的 也就是Teacher中用来做外键的字段
//hibernate有懒加载的功能,只有的去调用了它才会去执行
//insert="false" update="false" 在查询表的瞬间就进行锁定不然会报错
<property name="zc" column="zc"></property>
<property name="zjz" column="zjz"></property>
<many-to-one name="zcDict" class="com.hxci.pojo.Dict" column="zc" insert="false" update="false"></many-to-one>
<many-to-one name="zjzDict" class="com.hxci.pojo.Dict" column="zjz" insert="false" update="false"></many-to-one>
修改显示页面中职称,和专兼职改为新定义的两个属性
<td>'+v.zcDict.value+'</td> <td>'+v.zjzDict.value+'</td>
2、带多对一关系、下拉列表的修改
我们做的修改和显示不是同一页面的,在点击修改的时候跳转到添加的页面,把添加页面的标题改为修改页面,并要求显示默认值。
我们可以通过传递id的值找到要修改信息, 需要传递一个id到添加页面
//在显示页面添加跳转修改的链接
<a href="teacherAdd.html?'+v.id+'">修改</a> // 需要传递一个id到添加页面,
到添加页面中
$(function(){
//通过判断当前的请求地址中是否有id
var id =(window.location.href).split("?")[1]
//alert(id)
if(id != null){
$.ajax({ //通过一个ajax 向后台传递i,获取一条数据,并且显示在对应的位置上
type: "POST",
url: "/ssh_sign0506/tea!queryOne",
//不想定义新的变量来进行查询直接使用TeacherController中的 tea
data: {"tea.id":id}, //-->String index =null;
dataType:"json",
async: false,
success: function (res) {//res json对象
},
});
}
在TeacherController中写查询一条的方法
public class TeacherController {
TeacherService tservice =new TeacherServiceImpl();
String flag = "0";
List<Teacher> list = null;
Teacher tea = new Teacher(); //因为之前起到查询全部的作用有get、set方法,所以这里不需要进行创建
public String queryOne(){
tea = tservice.queryOne(tea);
return "queryOne";//result标签
}