ID无效后JPA事务提交的EclipseLink

USER MAPPING

@Id @Basic(optional = false) @SequenceGenerator(name = "sec_t_usuario", allocationSize = 1) @GeneratedValue(generator = "sec_t_usuario", strategy = GenerationType.SEQUENCE) @Column(name = "id") private Integer id; @OneToMany(mappedBy = "idUsuario", cascade = {CascadeType.ALL}) private Set<Session> sessions;

会议MAPPING

@ManyToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH }) @JoinColumn(name = "id_usuario", referencedColumnName = "id", nullable = false) private User user;

代码中进行链接两个实体

@Transactional(propagation=Propagation.REQUIRES_NEW, rollbackFor=PlayTheGuruException.class) private Session createSession(final User user) throws PlayTheGuruException { final Session session = new Session(); session.setActive(true); session.setLastLogin(Calendar.getInstance()); session.setUser(user); user.addSession(session); entityManager.merge(user); return session; }

主要方法

public Message<ResultDTO> registerUser(final Message<NewUserDataDTO> messageIn) throws PlayTheGuruException { . . . final Session session = createSession(messageIn); . //here the user Id is still null .

有了这样的背景下,为什么当我从了createSession交易法的用户ID还是返回null知道该交易已COMMITED?

我有疑问,从日食链接登录,并告诉我,用户插入和ID被分配过,但似乎并没有在代码中被刷新。

我曾尝试冲洗和会话或直接,而不是作品获得对象的用户。

谢谢!

--------------解决方案-------------

entityManager.merge()见这里)方法返回一个管理的实例。 在我看来,该user被作为参数实例没有被连接。 换句话说,它不是你所谓的“走出去”的参数,所以你赢了;吨有ID在该对象中设置。 您需要使用返回的对象,以便找到生成的ID。

session实例绝对不是管理。 同时也是它引用的User不是一个管理的实例。

分类:java的 时间:2012-01-01 人气:0
分享到:

相关文章

  • 在Java中/ JPA的Django之类的查询 2014-01-30

    是否有任何库或框架,使JPA查询在一个更简洁的方式,例如: User.query("age < 30") 代替: Query query = entityManager.createQuery("select u FROM User u WHERE age < 30"); return query.getResultList(); 我想,没有标准的方式与JPA做到这一点. 我已经看到了Hibernate的标准API,这不是简单的Django和迫使你的应用

  • 如何使用数据库INT2场为使用JPA / Hibernate的Java中的布尔 2012-07-18

    我写使用JPA和Hibernate基于已经存在的数据库(PostgreSQL系统)的应用程序. 有被用作一个布尔一个INT2-柱(activeYN)是一个表,(0 =>假(不活动),不为0 =>真(活性)). 在Java应用程序,我想用这个属性作为一个布尔值. 所以我这样定义的属性: @Entity public class ModelClass implements Serializable { /*..... some Code .... */ private boolean active

  • 的Java EE / JPA的方式来添加新表/实体数据库 2013-09-19

    我有我想要添加添加新表到数据库中的功能的MySQL数据库. 我大概可以很容易地找到JPQL本的例子,但我将如何再自动生成新表的实体,这样我可以在我的JPA代码的其余部分引用它从表更新和删除我经常引用的实体不实际的表本身. 我有实体现在我已经用eclipe从我创建的表生成. 但部署后,我们显然不会有Eclipse来做到这一点,所以我们需要在每次创建表时自动完成. --------------解决方案------------- 创建和动态映射新表是不是该JPA支持. 这将需要动态创建新的Java类,

  • 最简单的方式来获得一个关系,执着,SQL类型的Java中完成的数据库 2012-06-12

    我要创造,在我的Java应用程序保持一个相对简单的关系数据库,保存Web会话之间的信息,并做类似SQL的查询. 我已经JPA,休眠的EclipseLink等等念起来 - 似乎没有所有的简单化. 什么是启动和运行最简单的选择? --------------解决方案------------- 如果你不想使用ORM(这是必然复杂,因为它们是通用的,需要覆盖很多的情况下),你有相当多的选择,如果你愿意看非关系, 历史关系的解决方案:通过映射你的对象属性表列,并通过JDBC层调用DB自己做. 它不能更快​

  • Java中,代码生成和持久性框架 2012-08-25

    是否有任何Java代码生成持久化框架? 东西是"数据库第一",而不是第一个对象模型? 我知道这可能是异端邪说在Java世界中,我只是想知道,如果这样的存在的任何框架. 我更多的是.NET的家伙这些天. 因此,在.NET端工具,如.NET层或里昂证券浮现在脑海中. --------------解决方案------------- 肯定的是,休眠和NetBeans比如可以逆向工程数据库. 你可能会想看看: Hibernate的工具; 网站维护 NetBeans中,与最新版本的NetBeans

  • 在Java中缓存IMAP邮件 2012-11-01

    什么是缓存在客户端上IMAP电子邮件的最好方法? 我使用的是Java的的Gmail的IMAP库(稍作修改com.sun.mail.imap + javax.mail类). 这是一个基于Web的客户端,它在GlassFish中3.1.1的EclipseLink运行的持久性. 我有思路是: 保存电子邮件作为DB JPA实体 序列化电子邮件对象并将它们存储在DB 在内存中存储的电子邮件(如何?) 任何这些合理? 有没有更好的办法呢?

  • 为什么Java中没有类第一类对象? 2014-05-18

    有人能向我解释为什么类不是Java中的第一类对象? 有一定的模式,如果它这样做,将工作真的很好,我经常写工厂类具有getter和setter,只是增加不必要的克鲁夫特上课,这样我可以向周围传递实例的方法,而不是实际的类来分解出通用的码位. 例如: public class AsyncBookSearch extends AsyncTask<String,BookItem,Void> { public ListView list; public AmazonItemAdapter<Book

  • 什么是IncompatibleClassChangeError例外,在Java中? 2015-01-13

    我工作的一个小应用程序,我想使用Hibernate注解来映射我的实体. 我想测试,如果一切正常,当我得到这个异​​常: Exception in thread "main" java.lang.ExceptionInInitializerError at fr.cc2i.intervention.dao.main.Main$HibernateUtil.<clinit>(Main.java:48) at fr.cc2i.intervention.dao.main.Main.t

  • 试图设计在Java中的数据库。 到目前为止,我有我读了序列化的对象和更新,当我需要。 是好是坏主意吗? 2012-02-20

    因此,部分是出于与SQL语法无奈,我决定尝试实现自己的数据库. 我并不需要执行非常复杂的操作 - 只需要做好的行查找和添加新行. 我有两个数据结构, User和Circle . 然后这些投入Java的名单和最终的数据库对象看起来像这样(请注意,它implements Serializable ): public class Database implements Serializable { private static final long serialVersionUID = 5790642

  • 什么是Java中现在使用的主要工具/框架? 2012-05-09

    我是一个.net / C ++程序员切换到Java. 我在大学之前已经有过接触的Java 10+年前. 什么是为了能够web应用程序在Java中要学习典型的东西呢? 我能想到的:JSP / Servlet的Eclipse的EJB 还有什么人使用这些天? 这个想法是要能够降落在一个Java项目,并让自己有用的 --------------解决方案------------- Hibernate和Spring 我移植了很多谁使用Java大量的客户之间. 这是我看到人们使用: 一)很多: JDBC Se

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.032 (s). 10 q(s)