[jboss-user] [JBoss Seam] - Re: org.hibernate.exception.GenericJDBCException: Cannot ope

fernando_jmt do-not-reply at jboss.com
Wed Sep 19 08:54:05 EDT 2007


"wise_guybg" wrote : 
  | I have been dealing with a similar problem in a previous project at work where we used Hibernate. The solution was to create a backing session that will help you recover gracefully in case of DBException/ContraintViolation.
  | 
  | I was wondering if something similar can/should be done in Seam/EJB3.

Sure, you can.

My experience as code (a simple example):

ACTION:

  | @Name("userAction")
  | @Scope(ScopeType.CONVERSATION)
  | public class UserAction  {
  | 
  |     @In(required = false)
  |     @Out(required = false)
  |     private User user;
  | 
  |      @In(create = true)
  |     protected UserService userService;
  | 
  |     @End
  |     public String create() {
  |        try {
  | 
  |             userService.create(user);
  |             addCreatedMessage();
  |             return Outcome.SUCCESS;
  |         } catch (EntryDuplicatedException e) {
  |             addDuplicatedMessage();
  |             return null;
  |         }
  |     }
  | }
  | 

SERVICE:

  | 
  | @Stateful
  | @Name("userService")
  | @Scope(CONVERSATION)
  | public class UserServiceBean implements UserService {
  | 
  | 
  |     @In(value="#{entityManager}")
  |     private EntityManager em;
  | 
  | 
  |     public void create(User entity) throws EntryDuplicatedException {
  |         try {
  |             em.persist(entity);
  |             em.flush();
  |         } catch (EntityExistsException e) {
  |             throw new EntryDuplicatedException();
  |         }
  |     }
  | 
  | }
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4086078#4086078

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4086078



More information about the jboss-user mailing list