ここでは、データがmysql
dbにとどまった後に自動生成IDを取得しようとしました。mysqlDBに永続化した後に自動生成されたIdを取得する方法JPAを使用
DTOクラス
public class TradeTransaction {
private long tradetransactionid ;
private long borrowerid ;
private String operationalcountry ;
private String productcategory ;
private String producttype ;
private boolean ishazardous;
private boolean specialisedHandle;
private String currency;
private double transactionvalue;
private String suppliercountry;
@Id
@Column
public long getTradetransactionid() {
return tradetransactionid;
}
@Column
public long getBorrowerid() {
return borrowerid;
}
ビジネスロジッククラスは、データベースに永続化します。
EntityManager v_objEm;
EntityTransaction v_objTran;
TradeTransaction v_ObjectToPersist;
v_ObjectToPersist = new TradeTransaction();
v_ObjectToPersist.setBorrowerid(25);
v_ObjectToPersist.setOperationalcountry("India");
v_ObjectToPersist.setProductcategory("electornics");
v_ObjectToPersist.setProducttype("E9088"));
v_ObjectToPersist.setIshazardous(true);
v_ObjectToPersist.setSpecialisedHandle(true);
v_ObjectToPersist.setCurrency("usd");
v_ObjectToPersist.setTransactionvalue(2000.3);
v_ObjectToPersist.setSuppliercountry("african-based");
v_objEm = MyCustomClass.getEntityManager();
v_objTran = v_objEm.getTransaction();
v_objTran.begin();
v_objEm.persist(v_ObjectToPersist);
System.out.println(v_ObjectToPersist.getTradetransactionid()); //Transaction ID print as Zero.
v_objTran.commit();
System.out.println(v_ObjectToPersist.getTradetransactionid()); //Transaction ID print as Zero Here Too.
//v_objEm.refresh(v_ObjectToPersist); //not Working throwing Exception.
v_objEm.close();
私はデータベースに永続化されObject
からID生成自動車を取得するためにコードの異なる味を試してみました。成功しなかった。
注: - このコードは正常に動作し、データをdb
(エラーなし)に保存しています。しかし、自動生成されたID(これはprimary key
が複数の参照をテーブルに持つ)を取得できません。私はこれまで
私を助けてください..任意のヘルプにappriciatedされます。..
を試してみました リンクありがとうございました。
として、あなたの主キーをマークする必要がIDを生成しました。データはデータベースに保持されます。質問を慎重に読んでください。私はメモとして言及していただきありがとうございます –
私はデータが保持できることを理解しています。しかし、おそらくデータベース内のIDは自動生成され、0で上書きされることはありません。これは、すでに設定されている場合、JPAがJavaオブジェクトのid値をオーバーライドすることを意味しません。 –