mysql只需要在自增主键上写上GeneratedValue就可以实现自增。并且在save之后该id已经写到了实体类中。
@Entity
@Table(name = "OPERATION_LOG")
public class MyTest implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "operation_id")
private Long operationid;
@Column(name = "context")
private String context;
}
新增之后的实体类的id是有值的
public void add() throws Exception{
try{
MyTest test = new MyTest();
test.setContext("自定义增长id:" + new Date().toString());
System.out.println("新增前=" + test);
testDao.save(test);
System.out.println("新增后=" + test);
}catch(Exception e){
e.printStackTrace();
}
}
但是这只对自增的列是主键的情况起作用,如果自增的列不是主键,那么你新增后不能从新增的实体中获取到值。
对于这种情况,现在方案是先新增,然后查询,这样就能获取到数据库中自增的值,然后这个值再用到其他地方。