jpa使用mysql的自增id
阿新 • • 發佈:2018-12-31
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();
}
}
但是這隻對自增的列是主鍵的情況起作用,如果自增的列不是主鍵,那麼你新增後不能從新增的實體中獲取到值。
對於這種情況,現在方案是先新增,然後查詢,這樣就能獲取到資料庫中自增的值,然後這個值再用到其他地方。