`

十三 array数组形式的映射

 
阅读更多
数组其实跟List的集合映射没有多大的差别,当然它不可以使用bag这个节点配置
先看实体部门
package vo.util.bean;

import java.util.Set;

/**
 * 部门类
 * @author Administrator
 *
 */
public class Department {
  private int id;
  private String name;
  private Employee[] ems;
  
public int getId() {
	return id;
}

public Employee[] getEms() {
	return ems;
}

public void setEms(Employee[] ems) {
	this.ems = ems;
}

public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
}

映射文件 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="vo.util.bean">

	<class name="Department">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		
		<array name="ems">
		<key column="depaer_id"/>
		<list-index column="ol"/>
		<one-to-many class="Employee"/>
		</array>
	</class>
	
</hibernate-mapping>

看<key column="depaer_id"/>
		<list-index column="ol"/>
		<one-to-many class="Employee"/>
		这在List中的配置是同理的 不用解释了吧

只是以<array>节点配置在里面而已

测试类
package vo.util.test;

import java.util.HashSet;
import java.util.Set;

import org.hibernate.Session;
import org.hibernate.Transaction;

import vo.util.HibernateUtil;
import vo.util.bean.Department;
import vo.util.bean.Employee;

public class OneToMany {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	
         add();
        query(1);
	}
    static Department add(){
    	Session session = null;
    	Transaction tx = null;
    	try{
    		session =HibernateUtil.getSession();
    		tx = session.beginTransaction();
    		//…你的代码save,delete,update,get…
    		Department dpart=new Department();
    		dpart.setName("政企事业部");
    		
    		Employee em1=new Employee();
    		em1.setName("员工李小仙");
    		em1.setDerpartment(dpart);
    		
    		Employee em2=new Employee();
    		em2.setName("员工张小三");
    		em2.setDerpartment(dpart);
    		
    		Employee[] ems=new Employee[]{em1,em2};
    	    
    	    dpart.setEms(ems);
    		session.save(dpart);
    		session.save(em1);
    		session.save(em2);
    		
    		
    		tx.commit();
    		return dpart;
    	}finally{
    		if(session != null)session.close();
    	} 

    }
    
    static Department query(int id){
    	Session session=null;
    	
    	try{
    	   session=HibernateUtil.getSession();
    	   Department d=(Department)session.get(Department.class, id);
    	   Employee[] a=d.getEms();
    	   for(int i=0;i<a.length;i++){
    		   System.out.println(a[i]);
    	   }
    	   
    	  
    		return d;
    	}finally{
    		if(session != null)session.close();
    	} 

    }
}

好了 
end 完毕!

 

分享到:
评论

相关推荐

    hibernate array 数组映射

    在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...

    计算机软件-商业源码-二维数组,映射类.zip

    二维数组,也被称为矩阵,是数组的一种扩展,它在内存中以表格形式存储数据,每个元素都有两个索引,通常用行和列来标识。在C++、Java、Python等编程语言中,二维数组常用于处理表格数据,如图像处理、游戏地图、...

    js 数组工具类 ArrayUtil

    类似于`Array.prototype.map()`,`mapTo`可以遍历数组并将每个元素转换成新形式,但可能提供了更多的灵活性,如支持异步操作。 7. **数组拆分** (`chunk`) 这个方法可能会将一个大数组分割成若干个小数组,每个...

    PHP中使用array函数新建一个数组

    在这个例子中,`$fruits`数组包含了三个子数组,每个子数组都有自己的键和值。 在PHP中,可以使用自动索引来创建数组,如下所示: ```php $array = array(1, 1, 1, 1, 1, 8 =&gt; 1, 4 =&gt; 1, 19, 3 =&gt; 13); print_r($...

    HTML_2D_ARRAY:以数组形式访问 HTML 元素的接口

    在HTML_2D_ARRAY-master这个项目中,可能包含了一些示例代码或者库,用于演示如何实现或扩展这个接口的功能,例如提供更便捷的方法来处理和操作二维数组形式的HTML元素。通过研究这些示例,开发者可以深入理解如何在...

    读取图片地址并保存到数组

    最后,关于数组的操作,这里主要涉及到的是数组的映射(map)和追加(push)。`map`函数用于对数组中的每个元素执行一个函数并返回一个新的数组;`push`函数则用于向数组末尾添加新元素。在处理图片URL时,我们用`...

    d3-array:数组操作,排序,搜索,汇总等

    例如,您可以获取数组的连续切片(子集),使用谓词函数过滤数组,或者使用转换函数将数组映射到值的并行集合。 在查看d3-array提供的方法之前,请熟悉的强大。 JavaScript包含修改数组的突变方法: 从数组中删除...

    数组与数据结构

    #### 三、数组的遍历 在PHP中,遍历数组有多种方式: 1. **使用 `for` 循环遍历数组**: - `for` 循环可以直接通过索引访问数组的每个元素。这种方法适用于索引数组。 - 示例: ```php $arr = array(1, 3, ...

    基于压缩后缀数组实现的一个字符串搜索库

    压缩后缀数组(Compressed Suffix Array, CSA)作为一种节省存储空间的索引结构,为快速字符串搜索提供了可能。本文将深入探讨一个基于压缩后缀数组实现的字符串搜索库,分析其设计思想和实现细节。 压缩后缀数组是...

    以JSON形式将JS中Array对象数组传至后台的方法

    在本文中,将重点讨论如何利用JSON格式将JavaScript中的Array对象数组从前端发送到后端,以及在实现过程中所涉及的技术要点。 首先,业务需求是在前端使用jQuery easyUI DataGrid插件实现的列表中选择若干行的数据...

    gsoap_返回值为结构体数组

    当服务返回结构体数组时,gSOAP会生成一个处理数组的函数,通常以“_array”结尾。 例如,如果你有一个名为`Student`的结构体,包含`name`和`age`字段,你可以这样定义: ```cpp struct _Student { char *name; ...

    Mybatis调用PostgreSQL存储过程实现数组入参传递

    在`setNonNullParameter`中,你需要将Java数组转换为PostgreSQL可以识别的格式,这通常涉及到调用`Arrays.toString()`方法转换为字符串,因为CallableStatement通常需要以字符串形式传递数组。 总结起来,Mybatis...

    JSON解析数组

    Android JSON解析数组是Android开发中的常见任务,因为许多API返回的数据以JSON数组的形式存在。在这个场景下,我们将深入探讨如何在Android中解析JSON数组,并结合PHP服务器进行数据交互。 首先,我们需要了解JSON...

    利用php数组对百万数据进行排重

    PHP数组进行了多方面的优化,因此可以将其视为真正的数组、列表(向量)、散列表(映射的一种实现)、字典、集合、栈、队列等多种形式。数组元素的值甚至可以是另一个数组,支持创建树形结构或多维数组。 #### PHP...

    JS Array.from()将伪数组转换成数组的方法示例

    总结来说,`Array.from()`是ES6提供的一种高效、灵活的工具,用于将各种形式的可迭代对象转换为真正的数组,它简化了伪数组和可遍历对象的处理,并且支持在转换过程中进行定制化操作。在实际开发中,它能帮助我们...

    按钮数组(VC+Unicon)

    2. **数组存储**:创建一个数组来存储按钮的句柄或其他标识符,例如`buttonHandles := array(5)` 3. **事件处理**:使用监听器(listener)或者事件循环来捕获按钮的点击事件。在事件回调中,可以根据触发事件的...

    xml转为数组格式

    数组和JSON(JavaScript Object Notation)则是两种常见的数据表示形式,尤其在Web开发中广泛应用。将XML转换成数组或JSON格式,可以方便地在JavaScript、PHP、Python等编程语言中处理数据。 一、XML转换为数组 1....

    TIA博途中通过UDT实现IO地址映射到DB块中的具体方法.docx

    该数据类型被定义为一个数组(Array),其元素类型为Byte,数组的长度设置为50个元素。即:Array[0..49] of Byte。这一设置意味着我们可以将最多50个字节的数据存储在这个UDT数据类型中,这对于大多数IO地址映射的应用...

    labview中二维数组的排序功能开发

    二维数组是由一维数组组成的数组,可以形象地理解为表格形式的数据,包含行和列。在LabVIEW中,这种数据结构通常用阵列或矩阵表示,每个元素都有自己的索引位置。 在LabVIEW中实现二维数组的排序,主要分为以下几步...

    环形数组的概要介绍与分析

    环形数组(Circular Array)作为一种特殊的数据结构,其独特的逻辑结构表现为一个闭环形式。这意味着当索引达到数组的末端时,并不会抛出越界异常,而是会自动返回到数组的起始位置继续进行操作。这一特性使得环形...

Global site tag (gtag.js) - Google Analytics