/**
* Person类中有一个属性指向另外一个实体,但是另外一个实体没有属性指向Person,所以单向
* 由于Person表中是主键属性关联,所以主键,它的主键id是根据Address的主键id而来,因此不能使用代理主键
* @author Macrotea
*
*/
public class Person {
private int id;
private String name;
private Address address;
public Address getAddress() {
return address;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setAddress(Address address) {
this.address = address;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + "]";
}
}
public class Address {
private int id;
private String city;
public String getCity() {
return city;
}
public int getId() {
return id;
}
public void setCity(String city) {
this.city = city;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "Address [city=" + city + ", id=" + id + "]";
}
}
private static void prepare_data() {
Session session = HibernateSessionFactory.getSession();
Transaction transaction = session.beginTransaction();
transaction.begin();
Address addr = new Address();
addr.setCity("广州");
Person p = new Person();
p.setName("macrotea");
p.setAddress(addr);
session.save(addr);
session.save(p);
transaction.commit();
session.close();
}
<hibernate-mapping package="com.macrotea.hb.model">
<class name="Person">
<id name="id">
<!--基于主键关联,主键生成策略是foreign,说明根据关联类生成主键-->
<generator class="foreign">
<!--关联类的属性名-->
<param name="property">address</param>
</generator>
</id>
<property name="name" />
<one-to-one name="address" constrained="true"></one-to-one>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.macrotea.hb.model">
<class name="Address">
<id name="id">
<generator class="native" />
</id>
<property name="city" />
</class>
</hibernate-mapping>
分享到:
相关推荐
hibernate主键实现一对一单向关联关系源码
│ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ├─ 多对一连接表单向关联 │ └─ 多对多单向关联 └─双向...
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
博文链接:https://shaqiang32.iteye.com/blog/201308
Hibernate 实体关联关系映射 学习总结 把一对一 一对多 单向 双向 主键 外键 链接表等讲的比较清楚
Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向关联 Hibernate 一对多连接表单向关联 Hibernate 多对一外键单向关联 Hibernate 多对一连接表单向关联 Hibernate 多对多单向...
hibernate一对一主键关联映射(单向关联Person---->IdCard) 8 hibernate一对一主键关联映射(双向关联Person<---->IdCard) 9 hibernate一对一唯一外键关联映射(单向关联Person---->IdCard) 10 hibernate一对一...
NULL 博文链接:https://cdxs2.iteye.com/blog/1932507
单向一对一共享主键 该存储库正在存储有关Hibernate映射示例的源代码-共享主键上的单向一对一关联
009 一对一 主键关联映射_单向 010 一对一 主键关联映射_双向 011 一对一 唯一外键关联映射_单向 012 一对一 唯一外键关联映射_双向 013 session_flush 014 一对多关联映射 单向 015 一对多关联映射 双向 016 多对多...
一对一关联可能是双向的,在双向关联中,有且仅有一端作为主体(owner)端存在:主体端负责维护联接列(即更新),对于不需要维护这种关系的从表则通过mappedNy属性进行声明。mappedBy的值指向主体的关联属性。例子...
Hibernate 系列教程 单向一对多
基于主键的一对一 Wife Husband id references Husband(id) id name name create table Husband( id number primary key, name varchar2(15) ); create table Wife( id number primary key references ...
JPA视频_映射双向一对一的关联关系 · 16. JPA视频_映射双向多对多的关联关系 · 17. JPA视频_二级缓存 · 18. JPA视频_JPQL_HelloWorld · 19. JPA视频_JPQL_查询缓存 · 20. JPA视频_JPQL_ORDER BY 和 GROUP...
Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id...一对一 使用 @OneToOne...
8.5.2. 一对一(one to one) 8.5.3. 多对多(many to many) 9. 组件(Component)映射 9.1. 依赖对象(Dependent objects) 9.2. 在集合中出现的依赖对象 9.3. 组件作为Map的索引(Components as Map indices ...
16.4 多对一和一对一关联的检索策略 16.4.1 迫切左外连接检索(fetch属性为“join”) 16.4.2 延迟检索(lazy属性为默认值“proxy”) 16.4.3 无代理延迟检索(lazy属性为“no-proxy”) 16.4.4 立即检索...
7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-one]元素的not-null属性 153 7.1.2 级联保存和更新 155 7.2 映射一对多双向关联关系 156 7.2.1 [set]元素的inverse属性 161 7.2.2 级联删除 163 7.2.3 父子...