在Hibernate中保存后无法获取auto_incremented字段

时间:2017-03-23 09:46:30

标签: java mysql hibernate

我有一个包含auto_increment字段“autoValue”的表,它不是主键或其中的一部分。

public class MyClass {

    @Id
    private String id;

    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column
    private Integer autoValue;
    ....
}

当我保存对象(方法save())时,行被插入数据库并成功完成auto_increment。但是,如果我尝试获取autoValue的值,我会得到Null值。

MyClass obj = new MyClass();
obj.setId("newStringId");
session.save(obj);
obj.getAutoValue();// <= this returns null 

有人可以告诉问题在哪里以及如何处理以检索autoValue的值。

1 个答案:

答案 0 :(得分:0)

您可以尝试刷新Hibernate会话以将对象与数据库的新状态同步,这应该反映自动生成的值。

<td class="response" style="width: 25%;">
<a href="Your url">
<img class="img-responsive" style="max-width: 40%;" src="uploads/
<?php echo $client_images['image']; ?>" alt="" />
</a>

来自Hibernate documentation

  

可以使用refresh()方法随时重新加载对象及其所有集合。当数据库触发器用于初始化对象的某些属性时,这很有用。