SSH注解 关于hibernate一对一双向外键级联关系 查询两表的内容 例子
由于要查询两张表的内容,所以去了解了下hibernate 的一对一级联 。现在写了个简单的SSH 注解的 一对一双向级联。
关于一对一双向级联详解我推荐这个博客。我感觉写的很好。
hibernate(五) hibernate一对一关系映射详解
关于一些注解关键字了解 可以看看这个博客
hibernate 常用注解
下面我将给出我的相关代码:
CarDetail类
/** @author ljt* create on 2018/11/28* @汽车租赁
*/@Entity
@Table(name="zl_cars_detail")
public class CarDetail {/** carId 序号* carName 车辆名称* carCost 租车费用* carPedestal 座位数* carColor 颜色* carBrand 品牌* carSeries 车系* carAstyle 年代款* carCmodel 配置款* carDoors 车门数* carFtype 燃料类型* carTtype 变数箱类型* carCC 排量* carFlabel 燃油标号* carDmode 驱动方式* carEip 发动机进气形式* carLouver 天窗* carFtank 油箱容量* carVbox 音箱* carSeat 座椅* carBradar 倒车雷达* carGasbag 气囊数* carDVD DVD OR CD* carGps 是否有GPS导航* CarSimple 为了在详细类中能查询到对应的相关信息*/ @Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name="Car_id")private int carId;//一对一外键关联,从表,mappedBy字段必须是主表的字段@OneToOne(cascade=CascadeType.ALL ,mappedBy="carDetail")private CarSimple carSimple;@Column(name="Car_name")private String carName;//省略其他字段//** getter,setter方法}
CarSimple 类
** @Autor ljt* create on 2018/11/28* @汽车租赁*/@Entity
@Table(name="zl_cars")public class CarSimple {/** ID 自增序号* carID 外键序号* carNum 车牌号* carLeaseIs 是否在租 1 已经租赁 0没有租赁(default)* userID 租赁人ID* CarDetail 关联carSimple类*/@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name="ID")private int ID;//一对一外键关联,主表,外键字段是Car_id,对应的表是CarDetail。@OneToOne@JoinColumn(name="Car_id",insertable=true,unique=true)private CarDetail carDetail;@Column(name="Car_num")private String carNum;@Column(name="Car_lease_is")private int carLeaseIs=0;@Column(name="UserID")private int userID;//getter setter
}
DAO层接口
/** 获取carSimple carDetail 表的内容 (测试级联)* @param void * @return 查询的记录集合*/public List<CarSimple > queryTest();
DaoImpl层查询HQL
/** 获取carSimple carDetail 表的内容 (测试级联)* @param void * @return 查询的记录集合*/public List<CarSimple> queryTest() {@SuppressWarnings("unchecked")List<CarSimple> carSimpleList = sessionFactory.getCurrentSession().createQuery("from CarSimple").list();return carSimpleList;}
Service接口
/** 测试级联查询两表的内容* @return 返回CarSimple 级联所查询的内容*/public List<CarSimple> queryTest();
serviceImpl实现
/** 测试级联查询两表的内容* @return 返回CarSimple 级联所查询的内容*/@Transactional(propagation = Propagation.REQUIRES_NEW, isolation=Isolation.READ_COMMITTED)public List<CarSimple> queryTest() {List<CarSimple> carSimpleList = carSimpleDao.queryTest();System.out.println("开始测试****");for(CarSimple carSimple:carSimpleList) {System.out.println(carSimple.getCarNum());System.out.println(carSimple.getCarDetail().getCarName());}return carSimpleList;}
Action
** @Author ljt* create on 2018/11/29* @汽车租赁*/public class CarSimpleAction extends ActionSupport{/*** 序列化*/private static final long serialVersionUID = 1L;@Autowiredprivate CarSimpleService carSimpleService ;private List<CarSimple> carSimpleTest;//注解映射获取action,并返回相应的jsp页面(测试级联)@Action(value = "CarSimpleQueryDefaultPage2", results = { @Result(name ="CarSimpleQueryDefaultPageSuccess2", location = "/manage_test2.jsp")})public String CarSimpleQueryDefaultPage2() {carSimpleTest = carSimpleService.queryTest();return "CarSimpleQueryDefaultPageSuccess2";}public List<CarSimple> getCarSimpleTest() {return carSimpleTest;}public void setCarSimpleTest(List<CarSimple> carSimpleTest) {this.carSimpleTest = carSimpleTest;}}
前端页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试-后台管理员</title><!-- 新 Bootstrap 核心 CSS 文件 --><link href="${pageContext.request.contextPath}/bootstrap-3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"><!-- jQuery文件。务必在bootstrap.min.js 之前引入 --><script src="${pageContext.request.contextPath}/bootstrap-3.3.7/jquery-2.1.1/jquery.min.js"></script><!-- 最新的 Bootstrap 核心 JavaScript 文件 --><script src="${pageContext.request.contextPath}/bootstrap-3.3.7/dist/js/bootstrap.min.js"></script></head>
<body>
<s:iterator value="carSimpleTest"><table><tr>carSimple:<s:property value="ID"/>用户ID: <s:property value="carDetail.carId"/>用户名:<s:property value="carDetail.carName"/>排量:<s:property value="carDetail.carCC"/>编号:<s:property value="carNum"/></tr></table>
</s:iterator>
</body>
</html>
大概内容是这样的:
SSH注解 关于hibernate一对一双向外键级联关系 查询两表的内容 例子相关推荐
- Hibernate关系映射 一对一双向外键关联@OneToOne Annotation方式
首先还是来构造一个实际应用的场景,比如实体类车辆(Car),它具有以下属性:Id,品牌(brand),车牌(lisencePlate):实体类车牌(LisencePlate),它具有以下属性:Id,号 ...
- 删除oracle所有表外键,Oracle中查询、禁用、起用、删除表外键
Oracle中查询.禁用.启用.删除表外键 1.查询所有表的外键: select table_name, constraint_name from user_constraints where con ...
- hibernate one2one 唯一外键关联(双向关联)
hibernate的一对一唯一外键关联映射(双向关联 Person <------->IdCard) 一对一唯一外键关联采用<one - to -one>标签映射,必须指定标签 ...
- 关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存
关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存 其实解决办法十分简单: 首先确保你能够级联保存数据,当然除了关联表的外 ...
- mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作
1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...
- mysql创建外键级联更新_MySQL中利用外键实现级联删除、更新
MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作 ...
- mysql主外键引用关系,关于mysql:数据主/外键关系
我想对于那些已经开发了许多数据库模式的人来说,这将是一个简单的答案,但是我最近发现自己承担了优化(或尝试优化)数据库模式的任务,并且一直在阅读"高性能MySQL",并且剩下一个关于 ...
- mysql查询某张表的所有外键_oracle中查询所有外键引用到某张表的记录
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 oracle中查询所有外键引用到某张表的记录 //查询表的主键约束名 select * from user_constr ...
- sqlalchemy外键和relationship查询
前面的文章中讲解了外键的基础知识和操作,上一篇文章讲解了sqlalchemy的基本操作.前面两篇文章都是作为铺垫,为下面的文章打好基础.记得初一时第一次期中考试时考的不好,老爸安慰我说:"学 ...
最新文章
- r语言和python-PythonR语言-python和r相遇
- 吴恩达 coursera AI 第三课总结+作业答案
- ansible命令应用示例
- spring自动装配依赖包_解决Spring自动装配中的循环依赖
- HTML5-画布(canvas)效果之-渐变色
- linux单网卡多拨Adsl,秋明 | 边缘计算-使用多adsl账号做捆绑上网[单网卡多账号多拨]...
- 【转】UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc7 in position 1: invalid continuation 汉字编码
- PAT1087 All Roads Lead to Rome (30)(最短路径+dfs+回溯)
- 排列:计算1!+2*2!+3*3!+...+n*n!
- 每日一题题目26:选择排序(冒泡排序改进版)
- 别再 select * 了,送你 12 个查询技巧!
- ios uiswitch 开关_IOS开发(四):开关控件UISwitch
- c语言ascii码16进制,C语言附录ASCII码表.doc
- linux 计算cpu利用率
- 一文读懂“语言模型”
- 如何搭建点燃式发动机仿真模型
- 项目实战第一讲:如何优雅地记录操作日志
- origin2018 柱状图_学术干货 | 科研人请收藏—Origin画出双Y轴柱状图
- 考研题目 第五章 数组和广义表
- 清华计算机自主招生试题,2018清华大学自主招生试题.pdf