[Weblogic10][OpenJPA]Probleme persist et insert
Bonjour,
Voici mon persistence.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<persistence-unit name="****">
<jta-data-source>Datasource</jta-data-source>
<class>core.entities.RequestProperties</class>
<class>core.entities.Requests</class>
<class>core.entities.RequestStatus</class>
<class>core.entities.ResponseProperties</class>
<class>core.entities.Status</class>
<properties>
<property name="openjpa.ConnectionDriverName" value="com.ibm.db2.jcc.DB2Driver"/>
<property name="openjpa.TransactionMode" value="managed"/>
<property name="openjpa.Log" value="DefaultLevel=WARN,Runtime=INFO,Tool=INFO,SQL=TRACE"/>
<property name="dialect" value="org.apache.openjpa.jdbc.sql.DB2Dictionary"/>
</properties>
</persistence-unit>
</persistence> |
Dans mon code j'ai un select suivi par après d'un insert et un update :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public List getRequestsByStatus(Status status){
/*Query query = this.getEm().createQuery("select ID from Requests");*/
Query query = this.getEm().createNamedQuery(Requests.QUERY_REQUESTS_BY_STATUS);
query.setParameter("statusId", status.getId());
return query.getResultList();
}
@TransactionAttribute(value=TransactionAttributeType.REQUIRED)
public void updateRequestStatus(Requests request, Status status, String remark) {
if(request.getId() == null){
this.getEm().persist(request);
}
RequestStatus rs = new RequestStatus();
rs.setDate(new Date());
rs.setRemark(remark==null?"":remark.substring(0,255));
rs.setStatus(status);
rs.setRequests(request);
this.getEm().clear();
this.getEm().persist(rs);
request.setActualStatus(rs);
this.getEm().clear();
this.getEm().merge(request);
} |
ces 2 méthodes sont appellée l'une après l'autre d'un EJB dont le transactionMode est a requires_new...
Code:
1 2 3
|
@TransactionAttribute(value=TransactionAttributeType.REQUIRES_NEW)
public void findNewRequestsAndSend() { |
La première me retourne bien les données attendue, par contre la deuxième, n'insére rien et n'update rien. C'est comme si il y avait un rollback mais je n'ai pas d'exception visible en console.
Est ce que quelqu'un à une idée ?