Nhibernate一对一关系映射概述

现有两个表:user(用户)和Blog(设置表),它们之间的关系正如我所说的是一对一的关系。现在我们来映射这两个文件:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
  namespace="MyMvc4Project.Models" assembly="MyMvc4Project.Models">
    <class name="MyMvc4Project.Models.User" table="Users" lazy="false">
        <id name="Id">
            <column name="Id" sql-type="varchar(40)" not-null="true"/>
            <generator class="uuid.hex" />
        </id>
        <one-to-one name="Blog" class="Blog" cascade="all"></one-to-one>
    </class>
</hibernate-mapping>

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
  namespace="MyMvc4Project.Models" assembly="MyMvc4Project.Models">
    <class name="MyMvc4Project.Models.Blog" table="Blog" lazy="false">
        <id name="Id">
            <column name="Id" sql-type="varchar(40)" not-null="true"/>
            <generator class="foreign">
                <param name="property">User</param>
            </generator>
        </id>
        <one-to-one name="User" class="User" constrained="true"></one-to-one>
    </class>
</hibernate-mapping>

现在测试如何保存数据:

var userDal = new UserDal();
var blogDal = new BlogDal();
var user = new User{
                       Name = name,
                       Password = password,
                       PostTitle = posttitle,
                       CreateTime = DateTime.Now,
                       Avatar = fileUrl
                   };
var blog = new Blog { User = user };

user.Blog = blog;
blogDal.Save(blog);
userDal.Save(user);

总结:

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/

这样就成功了保存了数据,搞了“老子”一天的时间了,唉,其实hibernate一对一关联还有外键的关联等,我就使用了这个主键关联。

1:如果hibernate设置了

<id name="Id">
           <column name="Id" sql-type="varchar(40)" not-null="true"/>
           <generator class="uuid.hex" />
</id>

这样的代码,你就可以不用在添加数据时用这样的代码了:Guid.NewGuid。(以前居然不知道,真是失败)。

2:

<generator class="foreign">

<param name="property">User</param>

</generator>

这个代码表示的意思是,Blog的主键参考User表里的主键值。

3:也就是我上面保存数据的时候,我不确定是不是这样的操作,真的一点自信都没有,如果博友有的是hibernate专家,希望进来帮我看看,是不是这样保存数据(重要),还有一对一是不是这样配置的,唉,hibernate搞得我吐血了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索hibernate
, 数据
, 关联
, hibernate关联配置主键
, 一对一
user
nhibernate一对一、nhibernate 映射、hibernate一对一映射、一对一映射、ros nat一对一映射,以便于您获取更多的相关知识。

时间: 2024-09-09 08:16:03

Nhibernate一对一关系映射概述的相关文章

Nhibernate 一对一关系映射(主键映射)

参考:点击这里 妈的,搞了一天了,终于可以了,现在总结下,以防下次再出现这样痛苦的问题了,有两个表:user(用户)和Blog(设置表),它们之间的关系正如我所说的是一对一的关系.现在我们来映射这两个文件: <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="My

第十章 基于Annotation的关系映射 一对一

如果下面部分内容有不明白的可以查找: 基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911 基于映射文件共享主键方式实现一对一:http://blog.csdn.net/p_3er/article/details/9004419 基于映射文件唯一外键式实现一对一:http://blog.csdn.net/p_3er/article/details/9004471 1.共享主键方式: Person: @E

Hibernate及JPA 对象关系映射的简单映射策略

简单映射 近年来 ORM(Object-Relational Mapping,对象关系映射,即实体对象和数据库表的映射)技术市场 热闹非凡,各种各样的持久化框架应运而生,其中影响最大的是 Hibernate 和 Toplink.Sun 公司在充分吸收现有的优秀 ORM 尤其是 Hibernate 框架设计思想的基础上,制定了新的 JPA(Java Persistence API)规范,对现在乱象丛生的持久 化市场带来一个标准,大有统一持久化市场的气势.JPA 是通过 JDK5.0 注解或 XML

Hibernate及JPA对象关系映射:关联关系映射策略

关联关系映射 关联关系映射,是映射关系中比较复杂的一种映射关系,总的说来有一对一.一对多和多对多几种 关系.细分起来他们又有单向和双向之分.下面我们逐一介绍一下. 单向 OneToOne 单向一对一是关联关系 映射中最简单的一种,简单地说就是可以从关联的一方去查询另一方,却不能反向查询.我们用下面的例子来举例说明,清 单 1 中的 Person 实体类和清单 2 中的 Address 类就是这种单向的一对一关系,我们可以查询一个 Person 的对应的 Address 的内容,但是我们却不能由一

Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计

俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/Annotation) 联合主键 一对一单向外键联合主键(Xml/Annotation) 一对一组件关联(XML/Annotation) 理解组件 领域驱动设计--自动生成数据库脚本 一对一关系的小结 一些出错问题的总结   自动生成数据库脚本 一般在项目开发过程中,我们的习惯是先建好数据库和表,然后

系统-hibernate的关系映射和无关系型数据库

问题描述 hibernate的关系映射和无关系型数据库 小白问个问题: 在hibernate中有多对一.一对一.一对多.多对多这样的关系,只要在hbm.xml文件中配置了,那么去生产数据表的时候就会给表创建外键 这个很好理解,但是我目前在开发中,我发现很多成熟的系统数据库并没有外键,而且架构师提倡不用外键来管理,这样hibernate的关系设计是不是就不符合现在系统设计得需要了? 解决方案 在数据库里可以不设主键或者外键来使用hibernate进行逻辑上的关联.架构师不提倡是因为在对数据库进行增

Hibernate -- 注解(Annotation)关系映射

转自:http://www.cnblogs.com/tyler2000/archive/2011/01/20/1940354.html 1. Hibernate Annotation关系映射有下面几种类型:1)一对一外键关联映射(单向) 2)一对一外键关联映射(双向) 3)一对一主键关联映射(不重要)在这不演示 在实际中很少用,使用注解@PrimaryKeyJoinColumn 意思是说,我的主键去参考另外一张表中的主键,作为我的主键,但是在我测试使用 注解一对一主键关联映射,在生成表的时候,数

Hibernate实体关系映射—Annotation

hibernate实体关系映射分为:     单边一对一,双边一对一:     单边一对多,单边多对一:     双边一对多,双边多对一:     单边多对多,双边多对多:     以及主键相同的单双边一对一.下面分别总结这几种关系映射的注解方法: 1.  单边一对一和双边一对一     单边一对一:比如一个学生(Student)有一个学生证(StudentCard),且Student类中有一个StudentCard对象: [java] view plain copy   @Entity    

详解PHP的Laravel框架中Eloquent对象关系映射使用_php技巧

零.什么是 EloquentEloquent 是 Laravel 的 'ORM',即 'Object Relational Mapping',对象关系映射.ORM 的出现是为了帮我们把对数据库的操作变得更加地方便. Eloquent 让一个 'Model类' 对应一张数据库表,并且在底层封装了很多 'function',可以让 Model 类非常方便地调用. 来看一段如下代码: <?php class Article extends \Eloquent { protected $fillable