[jboss-cvs] jboss-seam/src/main/org/jboss/seam/framework ...
Gavin King
gavin.king at jboss.com
Wed Sep 27 21:47:33 EDT 2006
User: gavin
Date: 06/09/27 21:47:33
Modified: src/main/org/jboss/seam/framework EntityActions.java
ManagedEntity.java ManagedHibernateEntity.java
Query.java
Log:
more extensible
Revision Changes Path
1.5 +8 -8 jboss-seam/src/main/org/jboss/seam/framework/EntityActions.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: EntityActions.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/EntityActions.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- EntityActions.java 28 Sep 2006 01:32:23 -0000 1.4
+++ EntityActions.java 28 Sep 2006 01:47:33 -0000 1.5
@@ -17,8 +17,8 @@
@Transactional
public String update()
{
- entityManager.joinTransaction();
- entityManager.flush();
+ getEntityManager().joinTransaction();
+ getEntityManager().flush();
facesMessages.add("Successfully updated");
return "updated";
}
@@ -26,9 +26,9 @@
@Transactional
public String persist()
{
- entityManager.joinTransaction();
- entityManager.persist(entity);
- entityManager.flush();
+ getEntityManager().joinTransaction();
+ getEntityManager().persist(entity);
+ getEntityManager().flush();
facesMessages.add("Successfully created");
return "persisted";
}
@@ -36,9 +36,9 @@
@Transactional
public String remove()
{
- entityManager.joinTransaction();
- entityManager.remove(entity);
- entityManager.flush();
+ getEntityManager().joinTransaction();
+ getEntityManager().remove(entity);
+ getEntityManager().flush();
facesMessages.add("Successfully deleted");
return "removed";
}
1.3 +9 -8 jboss-seam/src/main/org/jboss/seam/framework/ManagedEntity.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ManagedEntity.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/ManagedEntity.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- ManagedEntity.java 27 Sep 2006 23:14:42 -0000 1.2
+++ ManagedEntity.java 28 Sep 2006 01:47:33 -0000 1.3
@@ -8,6 +8,7 @@
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Intercept;
+import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.annotations.Unwrap;
import org.jboss.seam.util.Reflections;
@@ -68,14 +69,14 @@
entityClass = Reflections.classForName(entityClassName);
}
- @Unwrap
+ @Unwrap @Transactional
public Object getInstance() throws Exception
{
if ( id==null || "".equals(id) )
{
if (instance==null)
{
- createInstance();
+ instance = createInstance();
}
}
else
@@ -85,21 +86,21 @@
//we cache the instance so that it does not "disappear"
//after remove() is called on the instance
//is this really a Good Idea??
- entityManager.joinTransaction();
- loadInstance( getConvertedId() );
+ getEntityManager().joinTransaction();
+ instance =loadInstance( getConvertedId() );
}
}
return instance;
}
- protected void createInstance() throws Exception
+ protected Object createInstance() throws Exception
{
- instance = entityClass.newInstance();
+ return entityClass.newInstance();
}
- protected void loadInstance(Object id)
+ protected Object loadInstance(Object id)
{
- instance = entityManager.find(entityClass, id);
+ return getEntityManager().find(entityClass, id);
}
//////////// TODO: copy/paste from ManagedHibernateEntity ///////////////////
1.2 +32 -9 jboss-seam/src/main/org/jboss/seam/framework/ManagedHibernateEntity.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ManagedHibernateEntity.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/ManagedHibernateEntity.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ManagedHibernateEntity.java 27 Sep 2006 03:53:49 -0000 1.1
+++ ManagedHibernateEntity.java 28 Sep 2006 01:47:33 -0000 1.2
@@ -6,6 +6,7 @@
import javax.faces.convert.Converter;
import org.hibernate.Session;
+import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.annotations.Unwrap;
import org.jboss.seam.util.Reflections;
@@ -23,9 +24,10 @@
{
private Session session;
private Serializable id;
- private String entityClass;
+ private String entityClassName;
+ private Class entityClass;
private String idClass;
- private Object newInstance;
+ private Object instance;
private String idConverterId;
private Converter idConverter;
@@ -51,30 +53,51 @@
public String getEntityClass()
{
- return entityClass;
+ return entityClassName;
}
public void setEntityClass(String entityClass)
{
- this.entityClass = entityClass;
+ this.entityClassName = entityClass;
+ }
+
+ @Create
+ public void initEntityClass() throws Exception
+ {
+ entityClass = Reflections.classForName(entityClassName);
}
@Unwrap @Transactional
public Object getInstance() throws Exception
{
- Class clazz = Reflections.classForName(entityClass);
if ( id==null || "".equals(id) )
{
- if (newInstance==null)
+ if (instance==null)
{
- newInstance = clazz.newInstance();
+ instance = createInstance();
}
- return newInstance;
}
else
{
- return session.get( clazz, getConvertedId() );
+ if (instance==null)
+ {
+ //we cache the instance so that it does not "disappear"
+ //after remove() is called on the instance
+ //is this really a Good Idea??
+ instance = loadInstance( getConvertedId() );
+ }
+ }
+ return instance;
}
+
+ protected Object createInstance() throws Exception
+ {
+ return entityClass.newInstance();
+ }
+
+ protected Object loadInstance(Serializable id)
+ {
+ return getSession().get(entityClass, id);
}
////////////TODO: copy/paste from ManagedEntity ///////////////////
1.2 +2 -2 jboss-seam/src/main/org/jboss/seam/framework/Query.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Query.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/Query.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- Query.java 27 Sep 2006 03:53:49 -0000 1.1
+++ Query.java 28 Sep 2006 01:47:33 -0000 1.2
@@ -65,8 +65,8 @@
{
prepareEjbql();
- entityManager.joinTransaction();
- javax.persistence.Query query = entityManager.createQuery(ejbql);
+ getEntityManager().joinTransaction();
+ javax.persistence.Query query = getEntityManager().createQuery(ejbql);
for (int i=0; i<queryParameters.size(); i++)
{
Object parameterValue = queryParameters.get(i).getValue( FacesContext.getCurrentInstance() );
More information about the jboss-cvs-commits
mailing list