`
esffor
  • 浏览: 1367453 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Subselect标签构造持久类查询

阅读更多

 前面文章阐述了,如果在Container,Box,Bottle三者的继承关系中配置HBM文件(box,bottle继承自Container)

现在,有一种更加简便的方式,使数据库中不需要建立一个box。bottle共享的表,而是分别建立Box和Bottle的表,这样更加复合面向对象的思想,而查询container则通过HBM配置文件来进行

Container持久类 其中Xparam,Yparam,Zparam对应box,bottle中的length等属性,只要保证都能包括Box,Bottle中的属性就可以,也就是说container属性是Box和Bottle和合集

本例子使用了hilo主键生成器策略所以,需要在数据库中建立一张维护高位值的表,并给出一个高位数值

 

CREATE TABLE `box` (
  `id` 
int(11NOT NULL default '0',
  `size` 
double default NULL,
  `name` 
varchar(50default NULL,
  `description` 
varchar(50default NULL,
  `width` 
double default NULL,
  `height` 
double default NULL,
  `
lendouble default NULL,
  
PRIMARY KEY  (`id`)
) ENGINE
=InnoDB DEFAULT CHARSET=gb2312;

CREATE TABLE `bottle` (
  `id` 
int(11NOT NULL default '0',
  `size` 
double default NULL,
  `name` 
varchar(20default NULL,
  `diameter` 
double default NULL,
  `height` 
double default NULL,
  `description` 
varchar(50default NULL,
  
PRIMARY KEY  (`id`)
) ENGINE
=InnoDB DEFAULT CHARSET=gb2312;

CREATE TABLE `hibernate_unique_key` (
  `next_hi` 
int(11NOT NULL default '0',
  
PRIMARY KEY  (`next_hi`)
) ENGINE
=InnoDB DEFAULT CHARSET=gb2312;


package subselect;

public class Container ...{
   
private String id;
   
private double size;
   
private String name;
   
private String description;
   
private double xparam;
   
private double yparam;
   
private double zparam;
public String getDescription() ...{
    
return description;
}

public void setDescription(String description) ...{
    
this.description = description;
}

public String getId() ...{
    
return id;
}

public void setId(String id) ...{
    
this.id = id;
}

public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}

public double getSize() ...{
    
return size;
}

public void setSize(double size) ...{
    
this.size = size;
}

public double getXparam() ...{
    
return xparam;
}

public void setXparam(double xparam) ...{
    
this.xparam = xparam;
}

public double getYparam() ...{
    
return yparam;
}

public void setYparam(double yparam) ...{
    
this.yparam = yparam;
}

public double getZparam() ...{
    
return zparam;
}

public void setZparam(double zparam) ...{
    
this.zparam = zparam;
}

}


Box持久类

package subselect;

public class Box ...{
  
private int id;
  
private double size;
  
private String name;
  
private String description;
  
private double width;
  
private double length;
  
private double height;
public String getDescription() ...{
    
return description;
}

public void setDescription(String description) ...{
    
this.description = description;
}

public double getHeight() ...{
    
return height;
}

public void setHeight(double height) ...{
    
this.height = height;
}


public int getId() ...{
    
return id;
}

public void setId(int id) ...{
    
this.id = id;
}

public double getLength() ...{
    
return length;
}

public void setLength(double length) ...{
    
this.length = length;
}

public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}


public double getSize() ...{
    
return size;
}

public void setSize(double size) ...{
    
this.size = size;
}

public <
分享到:
评论

相关推荐

    hibernate子查询

    在Hibernate的配置中,`&lt;class&gt;`标签用于定义一个持久化类,它包含了一系列属性,其中`subselect`属性可能对你的情况特别有用。 `subselect`属性允许你指定一个SQL子查询,这个子查询的结果将被用作该类的实例来源...

    精通sql结构化查询语句

    6.4.4 使用TOP子句 6.4.5 NULL的判断 6.5 模糊查询 6.5.1 使用LIKE运算符进行查询 6.5.2 使用“_”通配符进行查询 6.5.3 使用“%”通配符进行查询 6.5.4 使用“[]”通配符进行查询 6.5.5 使用“[^]”通配符进行查询...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略:只读...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    Hibernate关联关系hbm.xml中的相关属性

    5. `outer-join`: 控制是否使用外连接进行查询,可能的值有`auto`, `true`, `false`。 6. `update`, `insert`: 分别决定关联字段是否在UPDATE和INSERT语句中包含。设为`false`表示关联值由其他方式提供。 7. `...

    NHibernate参考文档 2.0.0 chm

    16.1.6. 使用子查询抓取(Using subselect fetching) 16.2. 二级缓存(The Second Level Cache) 16.2.1. 缓存映射(Cache mappings) 16.2.2. 策略:只读缓存(Strategy: read only) 16.2.3. 策略:读/写缓存...

    NHibernate中文帮组文档(2008.11月更新)

    16.1.6. 使用子查询抓取(Using subselect fetching) 16.2. 二级缓存(The Second Level Cache) 16.2.1. 缓存映射(Cache mappings) 16.2.2. 策略:只读缓存(Strategy: read only) 16.2.3. 策略:读/写缓存...

    最全Hibernate 参考文档

    19.1.5. 使用子查询抓取(Using subselect fetching) 19.1.6. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略...

    Hibernate中文详细学习文档

    使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略:只读...

    hibernate 框架详解

    5. 持久化类(Persistent Classes) 5.1. 一个简单的POJO例子 5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 5.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 5.1.3. 提供...

    hibernate3.04中文文档.chm

    使用子查询抓取(Using subselect fetching) 20.1.7. 使用延迟属性抓取(Using lazy property fetching) 20.2. 二级缓存(The Second Level Cache) 20.2.1. 缓存映射(Cache mappings) 20.2.2. 策略:...

    HibernateAPI中文版.chm

    使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略:只读...

    hibernate 体系结构与配置 参考文档(html)

    4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 ...

    Hibernate3+中文参考文档

    19.1.5. 使用子查询抓取(Using subselect fetching) 19.1.6. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略...

    hibernate3.2中文文档(chm格式)

    使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略:只读...

Global site tag (gtag.js) - Google Analytics