[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - How to catch Entity Manager exceptions ?
slugounet
do-not-reply at jboss.com
Sun Jun 24 14:12:09 EDT 2007
Hi !
I have a few entity beans with validation annotations, and I'd like to be able to catch the exceptions thrown by the hibernate validator when something goes wrong.
| @Entity
| public class Country {
|
| @Id
| @GeneratedValue( strategy=GenerationType.AUTO )
| private Integer id;
|
| @NotNull
| @Length(min = 1, max = 255)
| private String name;
| }
|
| @Stateless
| @Remote(Update.class)
| public class UpdateSessionBean implements Serializable, Update {
| public CountryDataBean updateCountry( CountryDataBean bean )
| throws UpdateException {
| Country entity = this.entityManager.find( Country.class, bean.getId() );
| if ( entity == null ) {
| throw new UpdateException( "Country not found" );
| }
|
| CountryMapper mapper = new CountryMapper();
| mapper.toEntity( bean, entity );
|
| try {
| entity = this.entityManager.merge( entity );
| }
| catch( InvalidStateException e ) {
| ... do some stuff
| }
|
| mapper.toDataBean( entity, bean );
| return bean;
| }
| }
|
When I force an error, I get that kind of error message :
| 19:49:43,158 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple at 7cd469
| javax.persistence.PersistenceException: org.hibernate.validator.InvalidStateException: validation failed for: prixmac.indexation.database.Country
| at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:527)
| at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114)
| at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:249)
| at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:88)
| at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1256)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175)
| at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
| ...
|
Does anyone have an idea of how I could catch those damned exceptions in my session bean ? Cause it's pretty pointless for me to validate the data if I can't find a way to know that something went wrong :(
I'm using JBoss 4.2.0 !
Best regards,
Guillaume
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057196#4057196
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057196
More information about the jboss-user
mailing list