时间戳
使用时间戳,是通过最后修改时间来判断是否来做更新操作,也就是只有在最后更新时间之后的更新操作才会执行。
写在Xxxxx.hbm.xml中
<timestamp name="updateTime" column="updatetime"/>
例:
public class User implements Serializable{
private int id;
private String name;
private String phone;
private Timestamp updateTime;//时间戳属性,记录最后修改的时间
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getPhone(){
return phone;
}
public void setPhone(String phone){
this.phone = phone;
}
public Timestamp getUpdateTime(){
return updateTime;
}
public void setUpdateTime(Timestamp updateTime){
this.updateTime = updateTime;
}
}
使用时间戳的User类的User.hbm.xml文件
<hibernate-mapping package="alan.hbn.concur.timestamp" auto-import="false">
<class name="User" table="user_ts">
<id name="id" column="id" type="integer" unsaved-value="0">
<generator class="native"/>
</id>
<timestamp name="updateTime" column="updatetime"/>
<!--指定时间戳属性对应的字段-->
<property name="name" column="name"/>
<property name="phone" column="phone"/>
</class>
</hibernate-mapping>
类继承关系映射
建表策略
1) 所有类建一个表
2) 只为具体类建表
3) 每个类建一个表。
1) 所有类只建一个表,查寻效率比较高,但是会产生很多空间浪费,当子类中的非空约束,就不大适用了,这是对于子类可以使用subclass标签表示。
2) 只为具体类建表,使用于不使用多态的情况下,具体类之间没有继承关系时适用
需要针对每个类写映射配置文件,就和普通的单表映射的xml文件相同。
也可以使用一个xml文件来进行映射,可以通过写union-subclass标签来表现其关系
这里不能使用id生成策略中的native,而是要指定特定的生成策略。
3) 每个类建一个表,可以有效减少数据的冗余,减少字段,查询效率不很高。
正对每个类建一个表,只要写一个配置文件来进行类的映射即可
映射文件中的子类可以使用join-subclass标签来表示,并且引用父类的主键作为共享主键,就是不需要指定id生成策略
注意:
不考虑多态时,最好是用只针对具体类建表,而考虑多态时尽量使用所有类建一个表,只有当子类中的属性过多是才考虑每个类建一个表的策略。
例:
Computer类,是抽象类,是父类
public abstract class Computer{
private int id;
private int price;
private String manufacturer;
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
public String getManufacturer(){
return manufacturer;
}
public void setManufacturer(String manufacturer){
this.manufacturer = manufacturer;
}
public int getPrice(){
return price;
}
public void setPrice(int price){
this.price = price;
}
}
子类台式机 Desktop类
public class Desktop extends Computer{
private boolean isLCD;
public boolean isLCD(){
return isLCD;
}
public void setLCD(boolean isLCD){
this.isLCD = isLCD;
}
}
子类笔记本电脑 Notepad类
public class Notepad extends Computer{
private float weight;
private float thickness;
public float getThickness(){
return thickness;
}
public void setThickness(float thickness){
this.thickness = thickness;
}
public float getWeight(){
return weight;
}
public void setWeight(float weight){
this.weight = weight;
}
}
分享到:
相关推荐
**5.3 Hibernate知识辅导(2--2)** - **多对多映射**: 多对多关系的实现方式。 - **级联操作**: 级联保存、删除等操作。 - **延迟加载**: 延迟加载实体及其关联对象。 **5.4 Hibernate知识辅导(2--3)** - **...
2. **Hibernate框架**: Hibernate是一个对象关系映射(ORM)工具,它简化了Java应用与关系数据库之间的交互。在博客系统中,Hibernate作为数据访问层,负责将Java对象与数据库中的表进行映射,提供透明的数据持久...
- JPA/Hibernate:理解ORM框架的工作原理,以及实体关系映射和查询语句的编写。 10. **心理辅导**: - 面试准备:了解如何有效地准备面试,包括对公司和职位的研究,以及自我介绍的技巧。 - 面试技巧:学会如何...
知识点2:SSM 框架 * SSM 框架是 Spring、Struts 和 Hibernate 的整合框架,能够提供一个完整的 Java WEB 开发解决方案。 * SSM 框架提供了一个松耦合的架构,能够使开发者快速构建应用程序。 * SSM 框架的主要特点...
根据给定的文件信息,我们可以提炼出一系列与Java程序设计相关的知识点,这48讲加上额外的2讲辅导课程,涵盖了Java编程的基础到高级技术,是深入理解和掌握Java语言的宝贵资源。以下是对这些知识点的详细说明: ###...
2. **数据库设计**:文件"2-数据库表结构文档"很可能包含了项目的数据库模型,包括各个表的设计、字段定义以及它们之间的关系。这通常涉及到关系型数据库管理系统(如MySQL或Oracle),并且可能运用了实体关系模型...
- **Hibernate4视频教程**:Hibernate是一个强大的对象-关系映射(ORM)框架,用于简化Java应用程序中的数据访问层。 - **Spring4视频教程**:Spring是一个轻量级的Java开发框架,主要用于简化企业级应用程序的开发...
在4-代码目录下,我们可以看到用Java编程语言编写的HRM系统的核心逻辑。Java作为一款面向对象的语言,以其跨平台的特性,被广泛应用于企业级应用开发。此系统可能采用了MVC(Model-View-Controller)架构模式,使得...
2. **技术栈展示**:列出你精通的Java技术,如J2EE、JDBC、多线程、集合框架、设计模式等,并提及你对其他相关技术如Spring Boot、MyBatis、Hibernate的理解和应用。 3. **项目经验**:详细描述你参与过的项目,...
8. **辅导视频**:01-视频可能是一系列的教学视频,帮助学习者理解系统的实现过程,包括编程技巧、问题调试、功能测试等内容,有助于深化理论知识和实践能力。 9. **版本控制**:项目可能使用Git进行版本控制,确保...
《基于Java的学生宿舍管理系统》 本项目是一款基于Java技术实现的学生宿舍管理系统,旨在提供一个...通过研究和模仿,开发者不仅可以掌握Java编程,还能了解到数据库设计、系统部署以及软件工程中的其他关键知识点。
- 数据库:MySQL或Oracle存储用户信息、作业、成绩等数据,使用JDBC进行数据库操作,可能结合Hibernate或MyBatis简化ORM(对象关系映射)。 - 前端:HTML、CSS和JavaScript,可能使用Bootstrap或Vue.js等框架提升...
2. **Java Web开发框架**:虽然没有明确指出使用哪个框架,但常见的Java Web框架如Spring MVC、Struts2或Hibernate可能被用到。这些框架可以帮助开发者更高效地管理HTTP请求、处理业务逻辑、进行数据持久化,并提供...
“3-资料”可能包含相关的学习资料,例如Java编程基础、Spring Boot教程、数据库管理知识等,帮助用户深入理解系统原理,提升开发技能。 六、辅导视频 “5-视频”中的辅导视频是系统的重要补充,通过实例演示,...
这个项目的重点在于理解和应用Java编程语言来构建一个实用的业务系统,同时也涉及到数据库管理和系统部署的相关知识。 1. **Java编程基础**:Java是一种面向对象的编程语言,它的特性包括平台独立性、丰富的类库和...
该系统主要利用了Spring、Struts2和Hibernate框架来设计并实现自动化的考试座位编排功能,从而替代了传统的人工排座方式。系统的设计和实现可以有效避免人工操作中可能出现的错误,减轻教务人员的工作负担,并且提升...