在Hibernate中很容易做到这一点,因为hibernate在事务commit之前  还有一个save方法,这个save方法就可以持久化并且拿到Id。

但是EF并不可以呀,EF是将对象标记为新增状态,等到最后上下文统一SaveChange的时候,才能提交事务拿到Id。

哎,初涉不深,我觉得应该是这个情况没错。不知道EF到底能不能像Hibernate那样,在事务commit之前就拿到。

所以我就想到使用两个EF上下文来做,但是两个上下文 有没有办法同时回滚,所以为了解决两个事务都能回滚的问题,

想到了一个办法,EF分布式事务应该可以。

感觉还是有点问题,事务之间有隔离性呀。

需要进一步确认和整理,先做个笔记。

操作后,整理结果:

弄晕了,想了一下这样的做法是错的,也不需要知道什么id,可能hibernate和EF设计的思想本来就不同,在EF中能不能拿得到ID其实也是无所谓的,可以把对象关系交给EF来处理 主外键,完全不需要获取Id。如果真是有什么特殊需要的话,主键可以换GUID,这样拿程序来生成就好了

Java Hibernate和.Net EntityFramework 如何在提交事务之前 就拿到需要新增实体的Id的更多相关文章

  1. Java Hibernate 5.3.x

    SchemeExport Hibernate根据实体类和实体类映射文件自动生成表结构. 示例代码: <?xml version='1.0' encoding='utf-8'?> <! ...

  2. JAVA Hibernate工作原理及为什么要用

    hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口 ...

  3. JAVA Hibernate工作原理及为什么要用(转)

    hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口 ...

  4. Java Hibernate 之 Session 状态

    Session接口是Hibernate向程序提供操纵数据库的最主要接口,是单线程对象,它提供了基本的保存.更新.删除和查询方法.它有一个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新 ...

  5. [Java] Hibernate

    背景 持久化技术框架 封装了JDBC做数据库相关功能开发的重复性工作 比如创建连接,关闭连接,把字段逐一映射到属性中等 使用 在数据库中创建表 创建java project 导入hibernate依赖 ...

  6. java Hibernate 处理 oracle xmltype类型

    网上关于如何处理oracle xmltype类型的博客很多,我现在分享的是针对具体业务来的,我在oracle数据库entity表中detail插入了一条xmltype类型的数据 xml的详细内容如下: ...

  7. Java Hibernate中的悲观锁和乐观锁的实现

    锁(locking) 业务逻辑的实现过程中,往往需要保证数据访问的排他性.如在金融系统的日终结算 处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中 (可能是几秒种, ...

  8. java+hibernate+mysql

    实体类News package org.mythsky.hibernatedemo; import javax.persistence.*; @Entity @Table(name="new ...

  9. java Hibernate UUID代码

    package mypack; import java.io.Serializable; import java.net.InetAddress; /** * 唯一主键生成办法.从Hibernate中 ...

随机推荐

  1. C/C++中如何计算程序运行的时间

    一个程序的功能通常有很多种方法来实现,怎么样的程序才算得上最优呢?举个例子,如果实现同一个功能的两个程序,一个一点按钮就给出运行结果,而另一个则需要漫长的时间去等待,就像安装WINDOWS XP一样( ...

  2. Python中scatter()函数--转载

    原博地址:http://blog.csdn.net/anneqiqi/article/details/64125186 最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意 ...

  3. php 三元运算符简洁用法

    <?php header('Content-type:text;charset=utf8'); $a = 'aaaa'; $b = $a ?:'; $c = $a ? $a : '; //这个和 ...

  4. nginx 前后分离,地址重写,url匹配中遇到的问题

    我遇到的问题: 前端用vue的路由做页面路由,后台用spring mvc做数据接口,但是遇到路由地址和接口地址无法区分的问题,导致nginx无法正确准发比如: 1)http://127.0.0.1/i ...

  5. openstack配置模块

    一.简介 openstack中负责处理配置的模块是oslo.config,它可以处理配置项和配置文件.通常的配置处理都是如下形式: from oslo.config import cfg CONF=c ...

  6. linux下配置java环境及问题

    一:下载jdk 下载稳定版本http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html ...

  7. 分块+二分 BZOJ 3343

    3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1312  Solved: 585[Submit][Status][Discus ...

  8. 【POJ】3233 Matrix Power Series

    [算法]二分+矩阵快速幂 [题意]给定矩阵A和整数k,MOD,求A^0+A^1+A^2+...+A^k. [题解] 定义题目要求的答案为f(n),即: $$f_n=\sum_{i=0}^{n}A^i$ ...

  9. 2017ACM暑期多校联合训练 - Team 6 1010 HDU 6105 Gameia (博弈)

    题目链接 Problem Description Alice and Bob are playing a game called 'Gameia ? Gameia !'. The game goes ...

  10. VueJS 集成 medium editor 自定义编辑器按钮

    详见我的新博客: 守望之吻