`

Hibernate annotation 一对多,多对一

阅读更多

 

package com.hibernate.entity;

import java.io.Serializable;


@Entity
public class Tgroup implements Serializable {
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1158932874414375265L;

	private int id;
	
	private String name;
	
	private Set<Tuser> tUsers = new HashSet<Tuser>();

	@Id
	@GeneratedValue
	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;
	}

	@OneToMany(mappedBy="tgroup")//如果不写mappedBy,那么tuser表中,将会有两个groupid,一个是groupid,一个是tgroup_id
	//一对多的时候,按经验,最好写mappedBy。"tGroup"是TUser表中的tGroup字段
	public Set<Tuser> gettUsers() {
		return tUsers;
	}

	public void settUsers(Set<Tuser> tUsers) {
		this.tUsers = tUsers;
	}
	
}

 

 

package com.hibernate.entity;

import java.io.Serializable;

@Entity
public class Tuser implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -635427302186865965L;
	
	
	private int id;
	
	private String name;
	
	private Tgroup tgroup;

	@Id
	@GeneratedValue
	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;
	}

	
	@ManyToOne
	@JoinColumn(name="groupid")//这样,在Tuser表中,就有一个groupid的外键与Tgroup表的id关联
	public Tgroup getTgroup() {
		return tgroup;
	}

	public void setTgroup(Tgroup tgroup) {
		this.tgroup = tgroup;
	}

	
	
}

 

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

	<session-factory>
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<property name="connection.url">
			jdbc:mysql://localhost/test
		</property>
		<property name="connection.username">root</property>
		<property name="connection.password">root</property>
		<property name="connection.driver_class">
			com.mysql.jdbc.Driver
		</property>

		<!-- JDBC connection pool (use the built-in) -->
		<property name="connection.pool_size">1</property>



		<!-- Enable Hibernate's automatic session context management -->
		<property name="current_session_context_class">thread</property>

		<!-- Disable the second-level cache  -->
		<property name="cache.provider_class">
			org.hibernate.cache.NoCacheProvider
		</property>

		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>

		<property name="format_sql">true</property>
		<!--
			<mapping class="com.hibernate.entity.Husband" />
			<mapping class="com.hibernate.entity.Wife" />
		-->
		<mapping class="com.hibernate.entity.Tgroup" />
		<mapping class="com.hibernate.entity.Tuser" />
	</session-factory>

</hibernate-configuration>
 

 

package com.hibernate.test;


import org.hibernate.SessionFactory;

public class ORMappingTest {
	
	private static SessionFactory sessionFactory;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		sessionFactory.close();
	}
	
	@Test
	public void testSchemaExport() {
		new SchemaExport(new AnnotationConfiguration().configure()).create(true, true);
	}

}
分享到:
评论

相关推荐

    hibernate annotation hibernate3

    这些注解分别表示一对多、多对一、一对一和多对多的关系。例如,表示用户与角色的一对多关系: ```java @ManyToOne @JoinColumn(name="ROLE_ID") private Role role; ``` 四、继承策略注解 1. `@Inheritance`...

    Hibernate annotation JPA 一对多,多对多

    1. **一对多关系**: 在现实世界中,一个老师可以教多个学生,或者一个班级可以包含多个学生,这就是典型的一对多关系。在Hibernate中,我们使用`@OneToMany`注解来表示这种关系。例如,在`Teacher`类中,我们可以...

    hibernate annotation 中文文档

    - `@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`: 用于处理各种关联关系,如一对一、一对多、多对一、多对多。 3. **继承与多态** - `@Inheritance`: 定义继承策略,如SINGLE_TABLE(单表)、JOINED...

    最全的Hibernate Annotation API文档

    2. 一对多(OneToMany):使用`@OneToMany`注解表示一个实体可以对应多个其他实体。 3. 多对一(ManyToOne):使用`@ManyToOne`注解表示多个实体对应一个其他实体。 4. 多对多(ManyToMany):使用`@ManyToMany`注解...

    Hibernate Annotation库

    例如,`@ManyToOne`表示一对多的关系,`@OneToMany`则表示多对一的关系,它们可以方便地处理复杂的数据库关系。 3. **ejb3-persistence.jar**: 这个jar包是Java EE企业版中的一部分,包含了JSR 303(Java ...

    Hibernate Annotation 中文文档

    在这个例子中,`User`类代表了`users`表,`id`是主键,`username`是表的一个列,`role`是与`Role`类的一对多关联。 **4. 注解的优势** - **简洁性**:注解使得ORM配置与实体类代码紧密集成,减少了XML配置文件的...

    Hibernate Annotation 基于外键的一对多双向关联

    本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体实例来解析这个主题,并结合源码分析其工作原理。 首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库...

    Hibernate Annotation入门

    而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上添加注解来简化数据库表和实体类之间的映射配置。这篇博文将带你了解如何使用Hibernate Annotation进行开发。 首先,我们需要理解Java...

    Hibernate Annotation 学习笔记

    1. 隐式映射:在上面的例子中,我们没有显式指定每个属性的映射,这是因为Hibernate Annotation采用了一种“配置例外”(configuration by exception)的理念。除主键和实体标识外,其他属性默认按照Java Bean的规则...

    Hibernate Annotation 共享主键一对一双向关联

    在实际的项目开发中,我们经常遇到各种各样的关联关系,比如一对一、一对多、多对一、多对多等。本文将详细讲解“Hibernate Annotation 中的共享主键一对一双向关联”。 首先,我们需要理解什么是共享主键(Shared ...

    hibernate annotation api chm文件

    - `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`: 定义不同类型的关联关系,如一对一、一对多、多对一和多对多。 3. **实体类的注解示例** 一个简单的User实体类可能如下所示: ```java @Entity @...

    Hibernate distribution and annotation

    6. **@OneToMany, @ManyToOne, @OneToOne, @ManyToMany**: 用于定义关联关系,如一对一、一对多、多对多等。 7. **@Temporal**: 用于日期和时间字段的特殊处理,如TIMESTAMP、DATE或TIME。 8. **@Inheritance**...

    HibernateAnnotation

    ### HibernateAnnotation 技术概述 在Java开发领域中,Hibernate框架是进行对象关系映射(Object-Relational Mapping,简称ORM)的一种非常流行的工具。它能够帮助开发者将面向对象的模型与关系型数据库进行桥接,...

    Hibernate Annotation 笔记 总结 注解

    - `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:定义对象间的一对多、多对一、一对一和多对多关系。 ### 事务管理 1. **声明式事务管理**:通过`@Transactional`注解在方法级别声明事务,这通常在...

    hibernate-Annotation.jar

    - `@OneToMany`:一对多关联,一个实体类的实例对应另一个实体类的多个属性。 - `@ManyToMany`:多对多关联,两个实体类之间存在多对多的关系,通常需要一个中间表来维护关系。 5. **懒加载和级联操作注解** - `...

    hibernate-annotation

    6. `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:这些注解用于描述多对一、一对多、一对一和多对多的关联关系。例如,一个用户可以有多个订单: ```java @Entity public class User { @Id private ...

    Hibernate中文文档+hibernate annotation +distribution

    2. 关联映射:通过注解处理一对多、一对一、多对多等复杂关系,简化数据库设计。 3. 动态查询:使用Criteria API或HQL构建动态查询,灵活适应业务需求。 总之,Hibernate中文文档和相关jar包提供了学习和使用...

    Hibernate Annotation 基于外键的单向多对一关联

    本篇文章将深入探讨如何使用Hibernate Annotation来实现基于外键的单向多对一关联。 在关系型数据库中,多对一关联是一种常见的关系类型,意味着一个实体(如表)可以与另一个实体有多条记录关联,而另一个实体只能...

Global site tag (gtag.js) - Google Analytics