hibernate 同一个类中多对一,一对多,不会用,请指教,讲解一下,最好是告诉我如何遍历

<p>hibernate 同一个类中多对一,一对多,不会用,请指教,讲解一下,最好是告诉我如何遍历userlist = userService.searchAll();这个结果集的容器的内容,用System.out.println(userlist);输出的是[com.test.bean.User@1ee5806, com.test.bean.User@708d23, com.test.bean.User@12bc86d, com.test.bean.User@1738d88, com.test.bean.User@150ece0, com.test.bean.User@1ef7b50, com.test.bean.User@18902ce] ,我要怎么遍历这个list

 

这个是我转出的SQL文件,t_user表里有7条数据,名字是汉字,随便打的

/*
Navicat MySQL Data Transfer
Source Host     : localhost:3306
Source Database : dhtmlxtree
Target Host     : localhost:3306
Target Database : dhtmlxtree
Date: 2012-04-06 16:24:29
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) default NULL,
  `pid` int(11) default NULL,
  PRIMARY KEY  (`id`),
  KEY `FKCB63CCB6FA18D2A5` (`pid`),
  CONSTRAINT `FKCB63CCB6FA18D2A5` FOREIGN KEY (`pid`) REFERENCES `t_user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES ('1', '闃块樋', null);
INSERT INTO `t_user` VALUES ('2', '鍚栧悥', '1');
INSERT INTO `t_user` VALUES ('3', '浣愮綏', '1');
INSERT INTO `t_user` VALUES ('4', '闆ⅷ', '2');
INSERT INTO `t_user` VALUES ('5', '绾风悍', '2');
INSERT INTO `t_user` VALUES ('6', '澶╁ぉ', '4');
INSERT INTO `t_user` VALUES ('7', '鍝堝搱', null);

 

这个是User.class的代码:

package com.test.bean; 
import java.util.Set; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue;
 import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.OneToMany; 
import javax.persistence.Table; 
import org.hibernate.annotations.LazyCollection; 
import org.hibernate.annotations.LazyCollectionOption; 

@Entity 
@Table(name="t_user") 
public class User { 
@Id 
@GeneratedValue 
private int id; 
private String name; 

@ManyToOne 
@JoinColumn(name="pid") 
private User parent; 
@OneToMany(mappedBy = "parent") 
@LazyCollection(LazyCollectionOption.EXTRA) 
private Set sons; 

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 User getParent() { return parent; } 
public void setParent(User parent) { this.parent = parent; } 
public Set getSons() { return sons; } 
public void setSons(Set sons) { this.sons = sons; } } 

 UserAction.class代码: 

package com.test.action;

import java.util.List;

import javax.annotation.Resource;

import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.test.bean.Student;
import com.test.bean.User;
import com.test.service.StudentService;
import com.test.service.UserService;

@Controller("userAction")
@Scope("prototype")
public class UserAction extends ActionSupport {

    private List<User> userlist;
    
    private User user= new User();
    @Resource
    private UserService userService;
    
    @Override
    public String execute() throws Exception {
    
        userlist = userService.searchAll();

        ActionContext.getContext().put("userlist", userlist);
        System.out.println(userlist);
        return SUCCESS;
    }
    
}

  

0

1个回答

用ForEach来遍历不就好了
for(User u:userlist){
System.out.println(u.getName());
}

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Hibernate 多对一与一对多关系配置(个人理解)
在我的理解中,在两边的xml配置文件中一起加入各自的关联关系就可以了,但是事实是我单独配置一方(多对一或一对多) 的时候,是可以级联查询另一方的,但是当多对一和一对多的关系同时配置时, 却只能实现多对一,获得作者的时候读取不出文章信息 所以我认为两边关系不能同时存在.
hibernate中的一对多与多对一的详细配置解析
1.Employee package cn.itcast.b_one2Many; public class Employee { private int empId; private String empName; private double salary; //员工与部门(多对一) private Dept dept; public int getEmpId() { r
Hibernate学习之一对多和多对一(一)
前言:最近上班工作不忙,随手写了几个demo,贴出来,供初学者学习一下 一.hibernate 简介:         hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库。         Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。简化DAO层的编码工作  ...
hibernate学习一对一,一对多,多对一,多对多,注解版和XML版
只是个人简单的一点小结 hibernate的配置文件 hibernate.cfg.xml         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
hibernate多对一关联和一对多关联
1. 多对一的单向关联 从订单(order)到客户(customer)的单向关联 (多个订单对应一个客户) JavaBean: Customer public class Customer{ private Integer id; private String name; } JavaBean: Order public class Customer{ private Integ
Hibernate中一对一,一对多,多对多的写法
hibernate中各类对应的bean类写法1、一对一的情况假设我们用Address类和User类做一对一的对应 User类package com.telek.model;import java.util.HashSet; import java.util.Set;import javax.annotation.Generated; import javax.persistence.Cascade
hibernate配置单向一对多和多对一的关系
hibernate.cfg.xml <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
hibernate中一对多关系以及操作关联属性
首先我们看一下“一对多”“多对一”关系的图解表中的表达:实体中的表达:一对多 orm元数据中的表达:&amp;lt;!--             name属性:集合属性名             column属性: 外键列名             class属性: 与我关联的对象完整类名 --&amp;gt; &amp;lt;set name=&quot;linkMens&quot; &amp;gt; &amp;lt;key column=&quot;l...
hibernate 一对多 多对一 关系的理解
1、单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联 双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时 如果只需要获取对应部门信息(user.getdeptarment()) 不需要 从部门下的人员信息时,就配置成单向 多对一 使用部门时 如果只需要获取部门下人员信息(deptartmanet.getusers()) 不
Hibernate中一对多和多对一关系
http://blog.sina.com.cn/s/blog_4b5bc0110100z483.html 1、单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联 双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时 如果只需要获取对应部门信息(user.getdeptarment()) 不需要 从部门下的人员信息时,就
Hibernate入门基础-单向多对一关联
1.单向多对一(例子:员工Employee  部门Department):多个员工对应一个部门单向多对一:单向 n-1关联只需从n的一端可以访问1的一端从Employee到Department的多对一单向关联 需要在Employee类中定义一个Department属性,而Department类无需定义存放Epmloyee对象的集合属性。(多方 管理一方  要知道一方的信息  有个属性能让多方得到一...
hibernate一对多、多对一、多对多问题
最近在写一个博客项目,数据库表的建立要考虑多表的问题,记录下学习所得! CRUD create read update delete 实体类的设计: Article: articleId title content  createDate author(User类型 多对一关系维护端) category(Category类型 多对一关系维护端)                comment...
Hibernate单向一对多映射和双向一对多映射
上一篇博客讲的是Hibernate的单向多对一映射,其实就是hibernat的实体类配置从多的一端来考虑,比如以学成Student和年级Grade为例,一个年级包含多个学成,多个学生也可能在同一个年级,当我们从学生Student的一端来配置实体类的配置,就是多对一映射;如果从年级Grade一端来配置实体类配置,就是今天要将的一对多映射。 新建一个java项目,取名为:09hibernat
hibernate 一对多和多对一查询
一、一对多以班级Classes和学生Student为例:回忆sql语句://内链接,两种方式效果一样,查询的是两边都有的数据SELECT c.*,s.* FROM classes c,student s WHERE s.cid=c.cid;SELECT c.cname,s.sname FROM classes c INNER JOIN student s ON s.cid=c.cid;//左外连接...
Hibernate一对多,多对多操作
表与表之间的关系一对多: 分类和商品关系,一个分类里面有多个商品,一个商品只能属于一个分类。 客户和联系人是一对多关系:联系人在人际交流中担任着重要的角色,在销售过程中,我们通常不是在最开始就联系到有决策权的高管,而有可能是接电话的前台A、营销人员B、客服C、技术人员D等等。这些人都是我们与企业保持交流的联系人。他们对产品的支持态度决定了产品是否能够顺利推送到高管面前。通常销售人员在跟进一个客户时,
Hibernate之单向一对多关联的实现
        单向的一对多关联映射关系主要是通过外键来关联的。一对多的关联映射是在表示“多”的一方的数据表中增加一个外键,并由“一”的一方指向“多”的一方。        单向一对多关联的持久化类里需要包含一个集合属性,在“一”的一方访问“多”的一方时,“多”的一方将以集合的形式来体现。如一个用户对应多个地址,则在grade类的定义中会包含一个集合属性,该属性就用来保存多个student实体。 ...
Hibernate的多对一的关系查询
Hibernate的多对一的关系查询 配置步骤 1.创建一个可以存储多个表数据的实体类,多对一的关系 //联系人和客户是多对一的关系,意味着一个联系人对应一个客户 //所以,一个联系人里面只有一个可以存储一个客户数据的属性就可以了。 //所以使用Customer的引用 private Customer customer; public Customer getCustomer() ...
Hibernate关联映射之一对多,多对一以及双向一对多
在上篇博客我们讲了hibernate对单表的操作,本篇博客就来讲讲对多表的关联映射操作。首先我们拿来做例子的表为班级表1---n学生表,在这次的测试主键我用的是序列,创建代码如下: --班级表 drop table classes; create table classes( cid int primary key, cname varchar2(50) ); dr
Hibernate注解配置一对多双向关联和多对一单向关联
Hibernate提供了Hibernate Annotations扩展包,使用注解完成映射。在Hibernate3.3之前,需单独下载注解开发包   配置持久化类 配置关联关系  下面我们先从多对一单向关联关系讲起,多对一单向关联就是在多的一方植入一的一方的主键作为外键,下面我们先进行初始配置,   在配置的过程中我们会遇到一个问题  就是无论用load还是get都不会出现延迟...
hibernate一对多配置文件
Hibernate 什么是框架: 在软件的开发中,框架中帮我们实现了一部分功能,使用框架的好处是少写代码就能实现想要的功能。 什么是Hibernate框架: 1.hibernate应用在javaee三层中的dao层框架。2.hibernate底层就是jdbc,对jdbc实现封装,应用hibernate框架不需要写jdbc代码。3.hibernate框架实现crud操作: (1)使用j
Hibernate一对多双向注解配置实例
*customer和order是一对多的关系,一个用户可以有多条订单,一条订单只能从属于一个用户。 所以,customer是一的一方,order是多的一方。*package com.lejuad.lejuadhome.manager.entity;import java.io.Serializable; import java.util.List;import javax.annotation.G
关于hibernate的多对一单向关联,一对多单向关联,和一对多双向关联的疑惑解答
转载:http://yanghelinok.blog.163.com/blog/static/4636027220146974240760/ hibernate提供的多对一,一对多给面向对象的开发提供了更多的操作便捷,但是也引发了不少问题。 也许很多人还不知道单向关联和双向关联有什么区别?那就先来说说这两者间的异同。 单向关联:是指在实体的一端进行关系的维护,直接通过一端的操作实现业
hibernate关系映射管理(一对多,多对一,一对一,多对多)
1、什么是关系映射所谓的关系映射指的是数据库表与表之间的关联关系,通常我们会把表之间的关系总结为4种,一对一,一对多,多对一,多对多。 这里面我们数据库通常是通过外键和关联表来进行表示的。而对于我们hiberante来说,也需要通过相应的配置去管理这种关系。 我们hibernate通过这种能表现关联关系的配置去创建表的时候,就可以在表结构上把这种关联关系给创建出来1、一对多 首先我们先理
hibernate中的一对多与多对一的配置参考
1.Employeepackage cn.itcast.b_one2Many; public class Employee { private int empId; private String empName; private double salary; //员工与部门(多对一) private Dept dept; public int getEmpId() { return empId;...
Hibernate中一对一以及一对多之间的关系
一:一对一关系(数据库--mysql)          1)人和省份证:一个人只能拥有一个身份证,一张身份证也只属于一个人            一对一建表是通过外键来建立联系的           实现步骤:               1、在数据库中创建两张表一张用户表(User),一张省份证表(Card--不需要建立自动增长,建立主键就可以了,通过hibernate来建立关系)
hibernate一对多保存数据(节省资源)
在hbm文件中进行双向配置 ,在java代码中进行双向关联操作,可以进行保存,但是会浪费资源,会有多余的update语句,所以可以在一的一方设置inverse=true,这样就由多的一方维护外键,会节省资源同样为了节省资源,我们通常采用级联操作,即在hbm文件中设置cascade这样可以在java代码中进行单项关联操作,保存一方就会级联保存另一方。...
Hibernate 单向多对一、单向一对多、双向一对多关联关系详解
一对多关系是最普遍的映射关系。比如部门和职工 一对多:从部门的角度,一个部门对应多个职工 多对一:从职工的角度,多个职工对应一个部门 数据库表中结构: 表 department:did departname 表 Employee:eid   ename   esex   did 工具类:SessionFactoryUtils .java,用来创建session工厂,后面的测试类的代码中
Hibernate系列学习之(二) 多对一、一对一、一对多、多对多的配置方法
hihernate一对多关联映射(单向Classes----->Student) 一对多关联映射利用了多对一关联映射原理 多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一 一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多 也就是说一对多和多对一的映射策略是一样的,只是站的角度不同 在一一端维护关系的缺点:  * 如果将t_studen
【hibernate】多对一,一对多关系
多对一映射:在说一对一外键单向映射中,在“主”端维护的时候用的是 标签,里面添加的unique=”true” 属性来约束的。这里不添加unique属性的时候就变成多对一的映射关系了。 “主”端: 多的一端 // column 数据中的别名 cascade 表示级联关系 通常用在多对一 ,和多对多的
Hibernate一对一,一对多懒加载的要求
懒加载要求Domain对象不能是final的,因为Hibernate需要生成一个继承自该Domain对象的类来实现懒加载。懒加载主要有三种: 1. 对象的懒加载 2. 关联集合的懒加载 3. 对象属性的懒加载 对象的懒加载 对象的懒加载就是在映射文件的class标签中设置lazy属性为true,这时,如果用session.load方法获取这个对象的话,Hibernate只返回一个代理对象
Hibernate入门基础-一对多/多对一双向关联
在一方记住了多方,在多方也记住了一方 ,双向管理,我们这样设计就是双向的关联,在实际开发里面,这种双向的关联是不推荐使用的!而且一对多这种关系最好就不要设计,即不要在一方记住多方,如果你设计了,在找出一方的数据时就要取出多方的数据,如果对方的数据超多的话,很容易导致内存溢出.   虽然在实际开发里面,一对多/多对一双向关联不推荐使用,但是我们还是应该有所了解的。Department.javapac...
Hibernate一对多映射配置
PS、inverse与cascade区别 1、inverse表示是否反转控制,默认为false,表示不反转,由本类控制       表现为一方添加时,由inverse="false"的类修改外键列。      (执行update语句)       (1)一对多时,一方类集合设inverse="false"(即默认),多方类many-to-one不可设置,默认为true       (2)
hibernate中的一对多,多对一,多对多关系配置
日常工作中,对于表表之间的关系需要通过分析得出,而分析完成之后则需要在实体和 表之间添加hibernate的配置文件   模板如下 多对一: &amp;lt;many-to-one name=“” class=“” column=“”/&amp;gt;    一对多:(Set) &amp;lt;set name=&quot;&quot;&amp;gt;         &amp;lt;key column=&quot;&quot;&amp;gt;&amp;lt;/key...
Hibernate关于一对多 多对一 多对多关联关系的设置
写这篇文章主要是介绍一下hibernate关于一对多 多对一 多对多关联关系的设置。 看似三个问题解决起来实则是2个问题,因为多对一和一对多的处理是反向的。 下面我们先从一对多入手,对于一对多我们从两个方面讲解: 1)一对多单向关联关系 2)一对多双向关联关系 我们使用User和OrderItem来描述,一个user可以拥有多个订单,一个订单只能属于一个user 在调试这段代码的时候闹
在hibernate中如果一对多关联,并以多的一方的参数作为条件则必须使用
public Data findDiectorByFilmId(Long filmId) { Data rows = directorDao.findRows("select new FilmDirector(fd.id as id,fd.chName as chName,fd.enName as enName,fd.birthDate as birthDate,fd.birthplace a
Hibernate一对一注解,一对多注解
使用Hibernate注解的步骤如下:       (1)使用注解配置持久化类及对象关联关系       (2)在Hibernate配置文件(hibernate,cfg,xml)中声明持久化类,语法如下:                     配置持久化类的常用注解       @Entity   将一个类声明为一个持久化类       @Table   为持
Hibernate使用JPA实现一对多配置
直接上代码 @Entity @Table(name="t_customer") public class Customer{ @Id @Column(name="cust_id") @GenericGenerator(name="sysnative",strategy="native") @GeneratedValue(generator="
Hibernate关联映射——一对多(多对一)
Hibernate关联映射——一对多(多对一)我们以客户(Customer)与订单(Order)为例来讲解Hibernate关联映射中的一对多关联关系。 首先肯定是搭建好Hibernate的开发环境,我在此也不过多赘述,读者自行实践。接着在src目录下创建一个cn.itheima.oneToMany包,并在该包下创建两个实体类,如下: 客户类// 客户 ---- 一的一方 public class
Hibernate 一对多 多对一 实例 及一些 问题(1)插入及查询
Clazz.java /** * */ package com.wonders.task.sample.bo; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax
Hibernate关联映射一对多--多方添加数据
bean类 user对象的实体类 package com.hp.bean; /** * @author xiao * 创建的时间:2018年1月31日 * @parameter 用户表 * @return 无返回值 */ import java.util.HashSet; import java.util.Set; public class UserBean { private ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java培训最好是哪 java中一对多学习