[jboss-user] [JBoss Seam] - Possible bug - POJO doesn't automatically join transaction

ASavitsky do-not-reply at jboss.com
Tue Apr 3 13:52:47 EDT 2007


Environment: Tomcat 5.5 + Seam 2.1.0 + Microcontainer, Seam-managed transactions and PCs.

UserBean.java - displays a list of existing User records, allowing user to select one (a-la "clickable lists" example) and edit it, or to create a new record:
@Name ("userBean")
  | @Scope (ScopeType.CONVERSATION)
  | @Transactional
  | public class UserBean extends EntityController {
  | 	@DataModelSelection
  | 	@Out (required = false)
  | 	private User selectedUser;
  | 	@DataModel
  | 	private List<User> users;
  | 
  | 	public void addUser() {
  | 		selectedUser = new User();
  | 	}
  | 	public void cancelEdit() {
  | 		selectedUser = null;
  | 	}
  | 	@Factory ("users")
  | 	@Begin (flushMode = FlushModeType.MANUAL)
  | 	public void createRecords() {
  | 		users = createQuery("SELECT u FROM User u").getResultList();
  | 	}
  | 	public void saveUser() {
  | 		// getEntityManager().joinTransaction();
  | 		persist(selectedUser);
  | 		flush();
  | 		addFacesMessage("User #{selectedUser.username} succesfully saved");
  | 		createRecords();
  | 	}
  | 	public void selectUser() {
  | 	}
  | }
  | 

When executing saveUser(), if selectedUser is a transient (new) instance, the flush() call throws a "javax.persistence.TransactionRequiredException: no transaction is in progress". If the first line is uncommented, the save completes successfully (verified in DB). When selectedUser is a managed (existing) instance, the updates complete successfully whether the first line is commented or not.

Is this a bug? Am I using the bean in a correct way?

Thanks,

Alex

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

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



More information about the jboss-user mailing list