当前位置:首页>开发>正文

ThinkPad如何手动更新系统 hibernate中inverse作用

2024-01-09 03:09:58 互联网 未知 开发

 ThinkPad如何手动更新系统 hibernate中inverse作用

ThinkPad如何手动更新系统

ThinkPad手动更新系统的方法如下:(要求使用的操作系统为正版或Think OEM操作系统) 前提:主机需要可以连接Internet,更新系统需要连接的Microsoft的网站。 以下几种方法都可以手动更新系统, 选择其中一种即可: (1)单击ldquo开始rarrWindows Updaterdquo连接到微软的更新站点进行更新。 (2)单击ldquo开始rarr运行rdquo,输入ldquowupdmgrrdquo后回车。 (3)单击ldquo开始rarr设置rarr控制面板rarr添加或删除程序rarr添加新程序rdquo,再单击ldquoWindows Updaterdquo按钮。 (4)单击ldquo开始rarr设置rarr控制面板rarr系统rarr自动更新rdquo,再单击ldquoWindows Update 网站rdquo开始更新。 (5)打开IE浏览器,单击ldquo工具rarrWindows Updaterdquo命令。 (6)直接在浏览器中输入http://windowsupdate.microsoft.com/打开更新页面进行更新。 注意:更新的速度与网络环境有关,首次使用系统更新会要求验证操作系统的版权,随机版的Think OEM操作系统可以顺利通过。验证通过后系统将自动检测需要安装的更新程序,更新完毕后需要重新启动。有时一次可能不能更新所有的程序,需要多次更新和重启,直到系统提示已经没有需要更新的程序即完成所有更新。 另外,在任务栏上出现黄色盾形小图标时,表示或需要安装更新,或正在下载更新,或正在安装更新。 ThinkPad,中文名为ldquo思考本rdquo,在2005年以前是IBM PC事业部旗下的便携式计算机品牌,凭借坚固和可靠的特性在业界享有很高声誉。在联想(Lenovo)收购IBM PC事业部之后,ThinkPad商标为联想所有。ThinkPad自问世以来一直保持着黑色的经典外观并对技术有着自己独到的见解,如:TrackPoint(指点杆,俗称小红点)、ThinkLight键盘灯、全尺寸键盘和APS(Active Protection System,主动保护系统)。 Thinkpad是开源码操作系统OpenBSD开发人员当中最受欢迎的携带型计算机,而ThinkPad X40更是最受系统支持的携带型计算机型号之一。

hibernate中inverse作用

inverse常用于一对多双向关联关系中。 以Student(学生)和Class(班级)为例,它们之间的关系为一对多的关系,即一个学生只能属于一个班级,一个班级可以包含多个学 生。 学生类定义代码: Class Student{ private int id private String name private Class class //省略getter()和setter()方法 } 班级类定义代码: Class Class{ private int id private String name private Set students = new HashSet() //省略getter()和setter()方法 } Student类的映射文件: Class类的映射文件: 希望你能对这两个映射文件所表达的数据库模式有正确的认识。即STUDENT表中存在一个名为CLASS_ID的字段,它和CLASS表中的ID字段是主外键关系。那个inverse属性就是用来规定是由谁(Student或Class)来维护这个主外键关系的。 inverse的默认值为false。 在处理逻辑代码中,如下: Class c1 = new Class() c1.setName("一班") Student s1 = new Student() Student s2 = new Student() s1.setName("Jason") s2.setName("Tom") c1.getStudents().add(s1) c2.getStudents().add(s2) s1.setClass(c1) s2.setClass(c1) //注释1 session.save(c1) 上面的代码会使Hibernate执行五条SQL语句,其中前三条是insert插入语句,后两条是update更新语句。插入就不用说了,那么为什么还要有更新语句呢?这是因为Class类映射文件的元素中指定了inverse="false",这就告之Hibernate:STUDENT表与CLASS表的主外键关系是由Class类来维护的。当执行save后,执行了三条insert语句,这三条语句中的后两条是插入到STUDENT表的,它们的CLASS_ID字段是通过s1.getClass().getID()取出的,假如我将上面“注释1”处修改为s2.setClass(c2)(c2是另一个Class对象,可能是持久化对象),这样,主外键关系不就乱了吗。为了保证主外键关系,Hibernate在这种情况下会再执行两条update语句来更改STUDENT表中两个新插入记录的CLASS_ID字段,当然,这时CLASS_ID字段的取值是从c1对象中直接取得,而不再是s1.getClass().getID()方式了。 如果我们将Class类映射文件的元素中的inverse属性修改为true,这就是告诉Hibernate:Class类不维护主外键关系了,这个任务就交给了Student类。于是,我们再执行上面的代码,Hibernate就会只执行三条insert语句,而不会执行任何update语句。因为Hibernate会通过Student类的s1.getClass().getID()和s2.getClass().getID()来确定CLASS_ID字段的值。 故,为了节省数据库资源,省却不必要的update语句,我们一般建议在一对多双向关联关系中,将一方的inverse属性设置为true,即将主外键的关系交由多方来维护。 打个比方:在一个公司中,是老板认识所有的员工容易,还是所有员工认识老板容易? 我是一个Hibernate的初学者,前两天刚刚研究了一下inverse属性,有所心得。写了这么多东西,希望能对你有所帮助。

最新文章