0
は、次のEJBセッションBeanいるI:EJBで分離トランザクションを取得するにはどうすればよいですか?
@Entity
public class Record implements Serializable{
private static final long serialVersionUID = 1L;
@Id
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public String toString() {
return "Record{" + "id=" + id + '}';
}
}
私は、挿入のためのスタンドアロンのJavaアプリケーションでのリモートメソッドを呼び出しています3つの数字:
@Stateless
public class FacadeBean implements FacadeBeanRemote {
@PersistenceContext(unitName = "ejercicio7PU")
private EntityManager em;
@Override
public void insertar(final long id) {
Record r = new Record();
r.setId(id);
em.persist(r);
}
@Override
public void insertarTres(final long id1, final long id2, final long id3) {
Logger.getLogger(FacadeBean.class.getName()).log(Level.INFO, "Insertando registros");
insertar(id1);
insertar(id2);
insertar(id3);
}
}
とレコードエンティティは以下のとおりです。
ejb.insertarTres(1l, 2l, 3l);
ここで、次の番号を使用してリモートメソッドを再度呼び出すとします。
のejb.insertarTres(4l, 5l, 3l);
番号4と5は、例外は私が
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
とinsertメソッドを設定しようとしましたが、それは私の
のために働いていない番号3によって発生した場合であっても保存されます
Whoopsは前のコメントに何かを追加するのを忘れていました。私はinsertarTres()を呼び出すときはどこでも別々に呼び出していました。 – Gimby
[必要な\ _Newのトランザクションをコミットしないのはなぜですか?](http://stackoverflow.com/questions/29487285/why-does-not-commit-transaction-of-requires-new) – Gimby
メソッドを呼び出すだけでは適切なトランザクションコンテキストが適用されないため、EJBへの参照です。 @Gimbyのリンクの提案された答えを見てください – Sergio