我正在使用hibernate作为我的应用程序的JPA提供者,现在我需要最近存储的请求对象的id,但是当我执行请求时。getId
它打印null
。
System.out.println("before save : request id's = "+request.getId());
session.save(request);
System.out.println("after save : request id's = "+request.getId());
我回答了这个问题。
此代码的输出:
before save : request id's = null
after save : reqeust id's = null
public class Request implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
因为id是由数据库生成的,所以它只有在实体实际写入之后才会出现。由于hibernate试图延迟实际的写入,因此它可能会保护一些数据库命中,session。save()
不一定会触发id生成。
尝试添加会话。保存后刷新()
,然后查看是否填充了id。
我正在创建一个需要一组玩家的应用程序。我使用团队ID作为每个球员的团队主键和外键。在一个片段中,我创建了一个新团队。创建团队并将其添加到我的房间数据库时,它最初的ID为0或未设置,即使我已将“自动生成”设置为true。然后,我导航到团队花名册视图,该视图能够向团队添加新球员。当我创建新玩家并在团队视图模型中使用新团队ID时,团队ID仍然为0或未设置,因此应用程序崩溃,外键约束失败。崩溃后,如果我重
考虑类家长: 和类儿童: 如果我在应用程序中创建一个新的子对象,并将其放入父对象的children字段中,然后持久化父对象,为什么Hibernate不自动更新子对象的Parent字段(以便设置parentID列)?
问题内容: 由于目的,我需要在插入后立即获取对象的ID。我可以解决以下代码: 我认为上面的代码还不够,因为会话需要重新打开才能找到对象。所以: 有没有更好的方法来获取ID? 如果有的话,在插入一袋对象后是否可以应用相同的策略来获取ID列表? 问题答案: 该session.save(对象)返回对象的ID,或者你可以进行保存或者之后调用ID getter方法。 Save()返回值: 返回值: Gett
出于某种目的,我需要在插入后立即获取对象的id。我可以使用以下代码: 我认为上面的代码不够,因为会话需要重新打开才能找到对象。所以: 有没有更好的办法获得身份证 如果有,我可以在插入一包对象后应用相同的策略来获取ID列表吗
问题内容: 我在父子表之间存在一对多关系。在父对象中,我有一个 我在子表中也有一个外键。此外键是引用数据库中父行的ID。因此,在我的数据库配置中,此外键不能为NULL。同样,此外键也是父表中的主键。 所以我的问题是如何通过执行以下操作来自动保存子对象: 我尝试了上面的方法,但是我收到一个数据库错误,抱怨Child表中的外键字段不能为NULL。是否可以告诉JPA自动将此外键设置为Child对象,以便
我在保存具有ManyToOne双向关系的实体时遇到问题,如下所示: 警告:HHH000437:试图保存一个或多个与未保存的瞬态实体具有不可为空的关联的实体。在保存这些从属实体之前,必须在操作中保存未保存的瞬态实体。未保存的临时实体:([com . epam . apartments booking . model . city # 912])依赖实体:([[com . epam . apartme