- 浏览: 570061 次
文章分类
- 全部博客 (235)
- 数据库 (12)
- j2se (10)
- JQuery (2)
- 经验总结 (4)
- 防毒 (1)
- Struts (20)
- Spring (12)
- 项目 (3)
- 电脑维修项目 (1)
- Eclipse (2)
- JSP (13)
- mysql (5)
- Hibernate (54)
- ssh (1)
- 学习网站 (1)
- tomcat (9)
- servlet (24)
- java语言基础 (1)
- jbpm (1)
- linux (0)
- 技巧积累 (1)
- javaBean (2)
- 设计模式 (2)
- 实用的操作 (9)
- oracle (1)
- UML学习 (1)
- 版本控制 (1)
- 框架 (9)
- javaWeb基础 (13)
- c语言 (0)
- ant (0)
- 关于权限 (3)
- 真正开发有用 (5)
- javascript (2)
- 算法 (1)
- J2EE (1)
- junit (1)
最新评论
-
alleni123:
不错 一搜就搜到这个了
ssession和servletContext的比较 -
hua7381:
楼主,你真实帮了大忙了!!
万能乱码处理---url传中文 -
albrich:
1楼是正解
摘] 装了个Tomcat遇到的问题 -
JA_mcj:
ssession和servletContext的比较 -
haotw:
看了很有帮助,总算对hibernate的延迟加载有一定的了解了 ...
[转]hibernate延迟加载
java 代码
- public class User implements java.io.Serializable {
- // Fields
- private UserId id;
- private String email;
- // Constructors
- /** default constructor */
- public User() {
- }
- /** full constructor */
- public User(String email) {
- this.email = email;
- }
- // Property accessors
- public UserId getId() {
- return this.id;
- }
- public void setId(UserId id) {
- this.id = id;
- }
- public String getEmail() {
- return this.email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- }
java 代码
- public class UserId implements java.io.Serializable {
- // Fields
- private String addr;
- private String name;
- // Constructors
- /** default constructor */
- public UserId() {
- }
- /** full constructor */
- public UserId(String addr, String name) {
- this.addr = addr;
- this.name = name;
- }
- // Property accessors
- public String getAddr() {
- return this.addr;
- }
- public void setAddr(String addr) {
- this.addr = addr;
- }
- public String getName() {
- return this.name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public boolean equals(Object other) {
- if ( (this == other ) ) return true;
- if ( (other == null ) ) return false;
- if ( !(other instanceof UserId) ) return false;
- UserId castOther = ( UserId ) other;
- return ( (this.getAddr()==castOther.getAddr()) || ( this.getAddr()!=null && castOther.getAddr()!=null && this.getAddr().equals(castOther.getAddr()) ) )
- && ( (this.getName()==castOther.getName()) || ( this.getName()!=null && castOther.getName()!=null && this.getName().equals(castOther.getName()) ) );
- }
- public int hashCode() {
- int result = 17;
- result = 37 * result + ( getAddr() == null ? 0 : this.getAddr().hashCode() );
- result = 37 * result + ( getName() == null ? 0 : this.getName().hashCode() );
- return result;
- }
- }
xml 代码
- <hibernate-mapping>
- <class name="User" table="user" catalog="tie">
- <composite-id name="id" class="UserId">
- <key-property name="addr" type="string">
- <column name="addr" length="45" />
- key-property>
- <key-property name="name" type="string">
- <column name="name" length="45" />
- key-property>
- composite-id>
- <property name="email" type="string">
- <column name="email" length="45" />
- property>
- class>
- hibernate-mapping>
这里把主键当成一个类,--->主键类.
有2点.
1,必须实现serializable
2.重写equals方法和hascode方法
xml中用compodite-id
测试的方法
java 代码
- public void testCase(){
- UserId id = new UserId();
- id.setName("linwei");
- id.setAddr("beijing");
- User user = new User();
- user.setId(id);
- user.setEmail("linweihan@163.com");
- Session session = factory.openSession();
- Transaction tr = session.beginTransaction();
- session.save(user);
- tr.commit();
- session.close();
- }
- public void testRetrieve(){
- UserId id = new UserId();
- id.setName("linwei");
- id.setAddr("beijing");
- Session session = factory.openSession();
- User user = (User)session.get(User.class, id);
- System.out.println(user.getEmail());
- session.close();
- }
发表评论
-
多对多双项关联
2007-12-02 16:39 4088数据库中仍然是利用一个中间表 持久化类中,都各自包含对方的集合 ... -
多对多单项关联
2007-12-02 16:02 44981.多对多单项关联 在数据库中多对多的关系,表之间设置一个中间 ... -
一对一关联
2007-12-02 14:13 3636一对一的关联 分为外键关联和主键关联 外键关联:在关系模型的表 ... -
双向的多对一或者双向的一对多
2007-12-02 00:38 3573一对多或者多对一都是从一方来看, 双向是从两个方向来看 这个时 ... -
一对多的另一个问题
2007-12-02 00:19 3329如果email 的一方设置uid 不能为空的话回报错,所以需要 ... -
做一对多遇到的几个问题(单向)
2007-12-02 00:14 3281java 代码 public class Use ... -
多对一举例(单项的,从一个方向看)
2007-12-01 23:15 3643java 代码 public class Use ... -
hibernate多对一
2007-12-01 22:59 4265处理多对一的时候 感觉关系模型多对一和一对多是一样的 在域模型 ... -
[转]Hibernate中的outer-join(二):fetch
2007-12-01 22:49 4615... -
hibernate中集合排序
2007-12-01 18:49 3692set,map可以支持内存排序和数据库排序 List什么都不支 ... -
[转] hibernate中给集合排序的方法
2007-12-01 18:47 5769<iframe style="MARGIN ... -
[转]集合类型和结果集排序
2007-12-01 18:39 3504言归正传,Hibernate中的Collection类型分为有 ... -
[转]hibernate延迟加载
2007-12-01 18:22 5990hibernate 延迟加载问题探 ... -
[转]主键自动生成办法
2007-12-01 18:11 3431... -
[转]hibernate中的 bag--解释的太好了.
2007-12-01 17:25 20447Bag是集合,与Set不同的是,Bag允许重复的元素, 在Ja ... -
hibernate值类型集合映射之Map
2007-12-01 17:02 2916java 代码 public class Use ... -
hibernate值类型集合映射之List
2007-12-01 16:43 3319java 代码 public class Use ... -
值类型映射---Set(2)
2007-12-01 13:43 3124这里自定义Email类,set里面放的是 email 类,非 ... -
值类型映射---Set(1)
2007-12-01 13:20 3410这里介绍2种不同的域模型的设计, 一种是Set里面装Strin ... -
事务的作用
2007-12-01 12:41 4565事务的作用是为了防止修改数据库, 如果只是查询那么就没必要修改 ...
相关推荐
"Hibernate复合主键" Hibernate复合主键是指在 Hibernate 框架中使用复合主键来唯一标识一个实体。复合主键是指由多个字段组成的主键,用于唯一标识一个实体。在本例中,我们将通过一个简单的复合主键的做关联类的...
《Hibernate复合主键配置与使用详解》 在Java开发中,Hibernate作为一款强大的ORM框架,大大简化了数据库操作。然而,当我们面临复杂的数据表结构,尤其是涉及到复合主键时,如何在Hibernate中进行配置和使用就显得...
在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据结构,用于处理具有多个字段作为唯一标识的情况。本教程将深入探讨如何在Hibernate中设置复合主键,并提供一个可直接使用的配置示例。 ...
复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射
`@Embeddable`注解用于定义一个包含复合主键字段的类,而`@EmbeddedId`注解则用在实体类上,指定这个复合主键类。 以下是一个简单的示例: 1. **复合主键类(Composite Key Class)** ```java import javax....
在Hibernate中,通过定义`@Embeddable`的复合主键类和`@EmbeddedId`的实体类,我们可以方便地管理和操作这些复合主键的实体。在保存和查询时,需注意正确设置复合主键的值,以确保数据的正确性。希望这个实例能帮助...
请更名为 Hibernate复合主键.part2.rar
更名为 Hibernate复合主键.part3.rar
本篇文章将深入探讨Hibernate如何支持和管理复合主键。 一、理解复合主键 在数据库设计中,复合主键是一种特殊情况,当单个字段不能唯一标识表中的每一行时,可以使用两个或多个字段的组合来创建唯一的标识。例如...
本章讲解Hibernate中对数据库复合主键的支持
环境:Windows XP professional、JDK 1.6、Hibernate 3.1、SQL Server 2000、MyEclipse 5.5...注意:复合主键类我使用内部类来实现--本人觉得这种使用内部类来封装比较专业。所有代码与配置档都有非常详细的注释说明。
在Java的Hibernate框架中,复合主键映射是一种处理多列组合成主键的情况,它使得在数据库表中由两个或更多个字段组成的主键能够被正确地映射到实体类。在使用复合主键时,我们需要遵循一定的步骤和规则。 首先,...
通过这种方式,Hibernate将知道如何处理`UserRole`类,将其映射到具有复合主键的数据库表。 3. 嵌入式主键(Embedded Id): 如果希望将主键字段作为实体类的一部分,而不是单独的类,可以使用`@EmbeddedId`和`@...
博文链接:https://balaschen.iteye.com/blog/155127