2009.11.23(2)——Hibernate(4) Annotations注解之一对多
今天是想学习下hql的连接语句,要学习什么内连接,外连接,就需要在数据库中构造下环境,只好在数据库中建立了company和employee的一对多数据库,如下
create table company
(cid number(7) primary key,
cname varchar2(15) not null
);
create table employee
(eid number(7) primary key,
ename varchar2(15) not null,
age number(3),
c_id number(7) references company(cid)
)
插入数据:
insert into company values(1,'huitu');
insert into company values(2,'ruitong');
insert into company values(3,'jinshui');
insert into company values(4,'nantian');
insert into company values(5,'lianxiang');
insert into employee values(1,'weixiangliang',23,1);
insert into employee values(2,'dengzexia',21,1);
insert into employee values(3,'xiezhongchi',25,1);
insert into employee values(4,'huangzhong',22,2);
insert into employee values(5,'wangyuwen',21,2);
insert into employee values(6,'jiayupeng',24,3);
insert into employee values(7,'liumin',26,3);
insert into employee values(8,'dingneng',23,4);
insert into employee values(9,'xiaoqiu',25,4);
insert into employee(eid,ename,age) values(10,'sky',25);
然后写这两张表对应的pojo类,但是这时就又用到Annotation了,
Company.java
@Entity
@Table(name="Company")
public class Company {
private Integer cid;
private String cname;
private Set<Employee> employees = new HashSet<Employee>() ;
@Id
public Integer getCid() {
return cid;
}
。。。。。。。。。
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "company")
public Set<Employee> getEmployees() {
return employees;
}
这个是OntToMany(),mappedBy,是相对应的外键,刚开始我写的是c_id,我以为这个不就是外键嘛,不过一直报错,后来我想可能是Employees的外键对应的表,就写了个company,居然对了 ,不过我还不是很理解。
我查了下资料知道了,mappedBy后面跟的应该是@ManyToOne所标示的属性
Employee.java
@Entity
@Table(name="Employee")
public class Employee {
private Integer eid;
private String ename;
private Integer age;
private Company company;
@Id
public Integer getEid() {
return eid;
}
。。。。。。。。。。。。。。。。
@ManyToOne()
@JoinColumn(name="c_id",referencedColumnName="cid")
public Company getCompany() {
return company;
}
对了 这里要提下单向和双向的区别:
如果是双向的话:
1.要在company加上mappedBy
2.要在Employee加上manyToOne
单向的话,只需要OneToMany就行了
这个 参考 http://dennnis-zane.blog.sohu.com/12210434.html
对了 差点忘了 还要在spring的配置文件
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.huitu.khms.pojo.Company</value>
<value>com.huitu.khms.pojo.Employee</value>
</list>
</property>
。。。。。
分享到:
相关推荐
6. @ManyToOne、@OneToOne、@OneToMany、@ManyToMany:定义不同类型的关联关系,如一对一、一对多、多对多。 7. @JoinColumn:用于关联关系中指定外键字段的属性。 8. @Temporal:用于日期时间类型的字段,支持...
使用注解Annotation时用的jar包。 包括: hibernate-commons-annotations-3.3.0.ga.jar hibernate-entitymanager.jar ejb3-persistence.jar hibernate-annotations.jar
4. **关系映射(Relationship Mapping)**:Hibernate支持多种数据库关系,如一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。通过注解,我们可以轻松地定义这些关系,...
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
综上所述,`hibernate-annotations.jar`是Hibernate框架的核心组件之一,它通过Java注解简化了数据库映射,使得开发更为高效。在实际项目中,结合其他Hibernate组件,可以构建出强大的数据访问层,大大提高开发效率...
现在已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的映射方式将代替hibernate 的*....
【hibernate_annotations.rar】这个压缩包文件主要涵盖了关于Hibernate框架中注解的使用和理解。Hibernate是一款流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据...
2. `org.hibernate.annotations.common`:这个包包含了通用的注解处理工具,如`AnnotationConfiguration`和`AnnotationBinder`,它们负责解析和绑定注解信息。 3. `org.hibernate.cfg`:这里的类主要用于配置和初始...
再来看`hibernate3-commons-annotations.jar`,这个库包含了Apache Commons Annotations的实现,它是一套用于处理Java注解的工具集。这些工具提供了一种标准的方式来查询和使用类上的注解,使得在运行时动态检查和...
hibernate-commons-annotations-5.1.0.Final.jar
3. **关系映射注解**:@OneToOne、@OneToMany、@ManyToOne和@ManyToMany分别用于一对一、一对多、多对一和多对多的关系映射,它们可以配合@JoinColumn或@JoinTable进一步配置关联细节。 4. **继承注解**:@...
3. **关系映射**:@OneToOne、@OneToMany、@ManyToOne、@ManyToMany注解分别用于一对一、一对多、多对一和多对多的关系映射,它们可以通过@JoinColumn或@JoinTable进行更详细的配置。 4. **继承策略**:@...
1. 实体类设计:使用注解定义实体类,如用户(User)和角色(Role)之间的多对多关系: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ...
3. **关联关系注解**:Hibernate支持一对一、一对多、多对一和多对多的关联关系。例如,`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`分别对应这四种关系。关联关系可以通过`@JoinColumn`或`@JoinTable`...
"hibernate-common-annotations.jar"是Hibernate框架中的一个关键组件,它提供了对JPA(Java Persistence API)注解的支持,使得开发者能够更加便捷地进行对象持久化操作。本文将深入探讨这个jar文件及其在Hibernate...
hibernate-annotations-3.4.0.GA.zip ; hibernate-distribution-3.3.2.GA-dist.zip ; slf4j-1.5.8.zip; 尚学堂马士兵的hibernate3.32教学视频用到插件;学习hibernation必备工具包
6. @ManyToOne、@OneToOne、@OneToMany、@ManyToMany:表示不同类型的关联关系,如一对一、一对多、多对多等。 7. @JoinColumn:在关联关系中指定外键列名。 8. @Temporal:用于日期时间类型的字段,指定存储类型...
解压后可得hibernate-annotations.jar和hibernate-annotations-src.zip,hibernate-annotations-src.zip为hibernate-annotations.jar的源代码
其中,Hibernate Annotations是其核心组件之一,它通过在Java实体类上添加注解,实现了数据持久化的声明式配置。本篇将深入探讨Hibernate Annotations 3.4.0.GA版本中的关键特性、工作原理以及实际应用。 1. **...