插入后可以自动选择Hibernate吗?

时间:2015-07-30 16:12:20

标签: java mysql hibernate

我使用Hibernate saveOrUpdate(object)将对象插入表中。此对象具有自动生成的ID字段以及“已创建的日期”字段。插入时由数据库设置的字段。在插入之后,java对象中的ID字段具有新生成的值,但是' createdDate'字段仍为空。

是否有一种方法(配置或设置或parm)可以告诉Hibernate在插入完成后自动选择新行,以便内存中的Java对象完全填写?用户“保存”后#39;网页在此对象上保持打开的对象,供用户编辑更多字段(仅在初始插入后可用),因此我想向用户显示这些生成的字段(ID,createdDate)。

**编辑**

由于答案,我正在为对象添加HBM.XML文件:

<hibernate-mapping>
  <class name="MyObject" table="MyObject">
      <id name="objectId" type="java.lang.Integer">
          <column name="Object_ID" />
          <generator class="identity" />
      </id>
      . . .  other attributes . . .
      <property name="createdDate" type="timestamp" update="false" insert="false">
          <column name="Created_Date" not-null="true" />
      </property>
  </class>
</hibernate-mapping>

1 个答案:

答案 0 :(得分:1)

使用@Generated

注释该属性
Q = nan('like',a);
tol = 10*eps(class(a));
for k = 1:numel(Q_roots)
    r = real(Q_roots(k));
    if abs(imag(Q_roots(k))) < tol*max(abs(r),1) && r >= 0 && r <= 3100;
        Q = r;
        break
    end
end

if freq < 0
    Q = -Q;
end

请注意,这会产生费用。您只需在代码中生成creationDate,而不是在数据库中生成(使用侦听器或JPA @Generated(GenerationTime.INSERT) private Date creationDate; 注释)。