这次说说OneToMany和ManyToOne
我们的场景是 1个父亲n多个孩子
先来看看这中做法:
TestFather.java
package net.paoding.forum.domain;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class TestFather
{
String id;
String name;
List<TestChild> children = new ArrayList<TestChild>();
/**
* @return the id
*/
@Id
public String getId()
{
return id;
}
/**
* @param id the id to set
*/
public void setId(String id)
{
this.id = id;
}
/**
* @return the name
*/
public String getName()
{
return name;
}
/**
* @param name the name to set
*/
public void setName(String name)
{
this.name = name;
}
/**
* @return the children
*/
@OneToMany
public List<TestChild> getChildren()
{
return children;
}
/**
* @param children the children to set
*/
public void setChildren(List<TestChild> children)
{
this.children = children;
}
}
TestChild.java
package net.paoding.forum.domain;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class TestChild
{
String id;
String name;
/**
* @return the id
*/
@Id
public String getId()
{
return id;
}
/**
* @param id the id to set
*/
public void setId(String id)
{
this.id = id;
}
/**
* @return the name
*/
public String getName()
{
return name;
}
/**
* @param name the name to set
*/
public void setName(String name)
{
this.name = name;
}
}
这样子,好像就可以了。那么是的么?我们来看看hib产生的sql
drop table test_child cascade constraints;
drop table test_father cascade constraints;
drop table test_father_children cascade constraints;
create table test_child (
id varchar2(255 char) not null,
name varchar2(255 char),
primary key (id)
);
create table test_father (
id varchar2(255 char) not null,
name varchar2(255 char),
primary key (id)
);
create table test_father_children (
null_id varchar2(255 char) not null,
children_id varchar2(255 char) not null,
unique (children_id)
);
alter table test_father_children
add constraint FK2E6E87D5901B7DBB
foreign key (null_id)
references test_father;
alter table test_father_children
add constraint FK2E6E87D58CD0E56B
foreign key (children_id)
references test_child;
alter table test_user
add constraint FKB9A96B58A237D846
foreign key (card_id)
references test_card;
oh! My God !它居然又帮我们多创建了一个table。作为关联。太笨了。
很明显,这不是我们所需要的。
那我们该如何呢?
分享到:
相关推荐
这篇博文将带你了解如何使用Hibernate Annotation进行开发。 首先,我们需要理解Java注解的基本概念。注解是一种元数据,它提供了在编译时或运行时处理类、方法和属性的能力。在Hibernate中,注解用于声明实体类...
【Hibernate学习笔记(1-13)】是传智播客李勇的教程,涵盖了...通过这个系列的学习,开发者能够掌握Hibernate的基本使用,包括配置、对象持久化、查询以及高级特性,从而在实际项目中更高效地进行数据库操作。
hibernate是Java开发中的一款流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。在"5天入门hibernate"的学习计划中,你将深入理解hibernate的核心概念和基本...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
Hibernate 是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了强大的工具来管理和持久化应用程序中的数据。对于初学者来说,理解并掌握Hibernate的关键概念和技术是非常重要的,因为这可以极大地提高开发...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
Hibernate是Java领域中一个非常流行的持久化框架,它通过提供对象关系映射(ORM)来简化数据库编程。通过Hibernate,开发者可以使用Java对象操作数据库,而无需编写大量的SQL代码。Hibernate的知识点非常广泛,下面...
5. **映射文件(Mapping File)**: `.hbm.xml`文件用于定义实体类与数据库表之间的映射关系,也可以使用注解方式(Annotation)来完成映射。 三、Hibernate配置 在使用Hibernate之前,需要进行一些基本的配置,包括...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
在传统的Hibernate配置中,我们通常会使用XML文件(如HbmUser.xml)来定义对象与数据库表的映射关系。例如,文件可能会包含如下内容: ```xml <hibernate-mapping> </hibernate-mapping> ``` 在这个...
在第7课,通过建立基于Annotation的`HelloWorld`示例,读者可以学习到如何利用注解进行对象关系映射配置。 第8课深入解释了O/RMapping(对象关系映射)的概念,包括其定义、Hibernate的创始人、作用、存在的原因,...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
#### 一、HelloWorld与Hibernate入门 - **HelloWorld实践**:初学者应从创建一个简单的Java项目开始,名为`hibernate_0100_HelloWorld`,在此项目中引入`User-library-hibernate`,包含所有必要的jar包,并集成MySQL...
入门部分简要介绍了如何在项目中设置和启动Hibernate Validator,包括以下几个小节: - 项目设置(Project setup),包含Unified EL和CDI2的相关内容。 - 应用约束(Applying constraints)。 - 验证约束...
### Java学习笔记——Java与Hibernate入门精要 #### 一、Java学习笔记概述 本学习笔记旨在帮助初学者系统地掌握Java语言的基础知识,并通过实际案例深入理解Hibernate框架的应用。通过对核心概念和技术点的详细解释...
在 Hibernate 中,我们使用注解来定义实体类及其属性与数据库表的关系。以下是一个简单的实体类示例: ```java import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax....