You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/02/26 13:17:12 UTC
svn commit: r1732463 - in /openmeetings/application:
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/
branches/3.1.x/openmeetings-db/src/...
Author: solomax
Date: Fri Feb 26 12:17:12 2016
New Revision: 1732463
URL: http://svn.apache.org/viewvc?rev=1732463&view=rev
Log:
[OPENMEETINGS-1336] fetching lazy attributes are now works as expected for user and room
Modified:
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java?rev=1732463&r1=1732462&r2=1732463&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java Fri Feb 26 12:17:12 2016
@@ -29,6 +29,7 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
+import org.apache.openjpa.persistence.OpenJPAEntityManager;
import org.apache.openjpa.persistence.OpenJPAPersistence;
import org.apache.openjpa.persistence.OpenJPAQuery;
import org.apache.openmeetings.db.dao.IDataProviderDao;
@@ -61,21 +62,41 @@ public class RoomDao implements IDataPro
@Override
public Room get(Long id) {
- TypedQuery<Room> q = em.createNamedQuery("getRoomById", Room.class);
- q.setParameter("id", id);
- @SuppressWarnings("unchecked")
- OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
- kq.getFetchPlan().addFetchGroup("roomModerators");
- List<Room> l = kq.getResultList();
- return l.isEmpty() ? null : l.get(0);
+ Room r = null;
+ if (id != null && id > 0) {
+ OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
+ boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
+ try {
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<Room> q = oem.createNamedQuery("getRoomById", Room.class);
+ q.setParameter("id", id);
+ @SuppressWarnings("unchecked")
+ OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
+ kq.getFetchPlan().addFetchGroups("roomModerators", "roomGroups");
+ List<Room> l = kq.getResultList();
+ r = l.isEmpty() ? r : l.get(0);
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
+ }
+ } else {
+ log.info("[get] " + "Info: No room id given");
+ }
+ return r;
}
public List<Room> get() {
- TypedQuery<Room> q = em.createNamedQuery("getBackupRooms", Room.class);
- @SuppressWarnings("unchecked")
- OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
- kq.getFetchPlan().addFetchGroup("roomModerators");
- return kq.getResultList();
+ OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
+ boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
+ try {
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<Room> q = oem.createNamedQuery("getBackupRooms", Room.class);
+ @SuppressWarnings("unchecked")
+ OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
+ kq.getFetchPlan().addFetchGroups("roomModerators", "roomGroups");
+ return kq.getResultList();
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
+ }
}
public List<Room> get(List<Long> ids) {
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1732463&r1=1732462&r2=1732463&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Fri Feb 26 12:17:12 2016
@@ -255,20 +255,23 @@ public class UserDao implements IDataPro
if (id != null && id > 0) {
OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
- oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
- TypedQuery<User> q = oem.createNamedQuery("getUserById", User.class).setParameter("id", id);
- @SuppressWarnings("unchecked")
- OpenJPAQuery<User> kq = OpenJPAPersistence.cast(q);
- kq.getFetchPlan().addFetchGroup("groupUsers");
- if (force) {
- kq.getFetchPlan().addFetchGroup("backupexport");
- }
try {
- u = kq.getSingleResult();
- } catch (NoResultException ne) {
- //no-op
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<User> q = oem.createNamedQuery("getUserById", User.class).setParameter("id", id);
+ @SuppressWarnings("unchecked")
+ OpenJPAQuery<User> kq = OpenJPAPersistence.cast(q);
+ kq.getFetchPlan().addFetchGroup("groupUsers");
+ if (force) {
+ kq.getFetchPlan().addFetchGroup("backupexport");
+ }
+ try {
+ u = kq.getSingleResult();
+ } catch (NoResultException ne) {
+ //no-op
+ }
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
}
- oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
} else {
log.info("[get] " + "Info: No user id given");
}
@@ -304,16 +307,18 @@ public class UserDao implements IDataPro
}
public List<User> getAllBackupUsers() {
+ OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
+ boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
try {
- TypedQuery<User> q = em.createNamedQuery("getAllUsers", User.class);
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<User> q = oem.createNamedQuery("getAllUsers", User.class);
@SuppressWarnings("unchecked")
OpenJPAQuery<User> kq = OpenJPAPersistence.cast(q);
kq.getFetchPlan().addFetchGroups("backupexport", "groupUsers");
return kq.getResultList();
- } catch (Exception ex2) {
- log.error("[getAllUsersDeleted] ", ex2);
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
}
- return null;
}
/**
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1732463&r1=1732462&r2=1732463&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java Fri Feb 26 12:17:12 2016
@@ -54,7 +54,8 @@ import org.simpleframework.xml.Root;
@Entity
@FetchGroups({
- @FetchGroup(name = "roomModerators", attributes = { @FetchAttribute(name = "moderators"), @FetchAttribute(name = "roomGroups") })
+ @FetchGroup(name = "roomModerators", attributes = { @FetchAttribute(name = "moderators") })
+ , @FetchGroup(name = "roomGroups", attributes = { @FetchAttribute(name = "roomGroups") })
})
@NamedQueries({
@NamedQuery(name = "getNondeletedRooms", query = "SELECT r FROM Room r WHERE r.deleted = false"),
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java?rev=1732463&r1=1732462&r2=1732463&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java Fri Feb 26 12:17:12 2016
@@ -29,6 +29,7 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
+import org.apache.openjpa.persistence.OpenJPAEntityManager;
import org.apache.openjpa.persistence.OpenJPAPersistence;
import org.apache.openjpa.persistence.OpenJPAQuery;
import org.apache.openmeetings.db.dao.IDataProviderDao;
@@ -61,21 +62,41 @@ public class RoomDao implements IDataPro
@Override
public Room get(Long id) {
- TypedQuery<Room> q = em.createNamedQuery("getRoomById", Room.class);
- q.setParameter("id", id);
- @SuppressWarnings("unchecked")
- OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
- kq.getFetchPlan().addFetchGroup("roomModerators");
- List<Room> l = kq.getResultList();
- return l.isEmpty() ? null : l.get(0);
+ Room r = null;
+ if (id != null && id > 0) {
+ OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
+ boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
+ try {
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<Room> q = oem.createNamedQuery("getRoomById", Room.class);
+ q.setParameter("id", id);
+ @SuppressWarnings("unchecked")
+ OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
+ kq.getFetchPlan().addFetchGroups("roomModerators", "roomGroups");
+ List<Room> l = kq.getResultList();
+ r = l.isEmpty() ? r : l.get(0);
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
+ }
+ } else {
+ log.info("[get] " + "Info: No room id given");
+ }
+ return r;
}
public List<Room> get() {
- TypedQuery<Room> q = em.createNamedQuery("getBackupRooms", Room.class);
- @SuppressWarnings("unchecked")
- OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
- kq.getFetchPlan().addFetchGroup("roomModerators");
- return kq.getResultList();
+ OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
+ boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
+ try {
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<Room> q = oem.createNamedQuery("getBackupRooms", Room.class);
+ @SuppressWarnings("unchecked")
+ OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
+ kq.getFetchPlan().addFetchGroups("roomModerators", "roomGroups");
+ return kq.getResultList();
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
+ }
}
public List<Room> get(List<Long> ids) {
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1732463&r1=1732462&r2=1732463&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Fri Feb 26 12:17:12 2016
@@ -255,20 +255,23 @@ public class UserDao implements IDataPro
if (id != null && id > 0) {
OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
- oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
- TypedQuery<User> q = oem.createNamedQuery("getUserById", User.class).setParameter("id", id);
- @SuppressWarnings("unchecked")
- OpenJPAQuery<User> kq = OpenJPAPersistence.cast(q);
- kq.getFetchPlan().addFetchGroup("groupUsers");
- if (force) {
- kq.getFetchPlan().addFetchGroup("backupexport");
- }
try {
- u = kq.getSingleResult();
- } catch (NoResultException ne) {
- //no-op
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<User> q = oem.createNamedQuery("getUserById", User.class).setParameter("id", id);
+ @SuppressWarnings("unchecked")
+ OpenJPAQuery<User> kq = OpenJPAPersistence.cast(q);
+ kq.getFetchPlan().addFetchGroup("groupUsers");
+ if (force) {
+ kq.getFetchPlan().addFetchGroup("backupexport");
+ }
+ try {
+ u = kq.getSingleResult();
+ } catch (NoResultException ne) {
+ //no-op
+ }
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
}
- oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
} else {
log.info("[get] " + "Info: No user id given");
}
@@ -304,16 +307,18 @@ public class UserDao implements IDataPro
}
public List<User> getAllBackupUsers() {
+ OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
+ boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
try {
- TypedQuery<User> q = em.createNamedQuery("getAllUsers", User.class);
+ oem.getFetchPlan().setQueryResultCacheEnabled(false); //FIXME update in cache during update
+ TypedQuery<User> q = oem.createNamedQuery("getAllUsers", User.class);
@SuppressWarnings("unchecked")
OpenJPAQuery<User> kq = OpenJPAPersistence.cast(q);
kq.getFetchPlan().addFetchGroups("backupexport", "groupUsers");
return kq.getResultList();
- } catch (Exception ex2) {
- log.error("[getAllUsersDeleted] ", ex2);
+ } finally {
+ oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
}
- return null;
}
/**
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1732463&r1=1732462&r2=1732463&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java Fri Feb 26 12:17:12 2016
@@ -54,7 +54,8 @@ import org.simpleframework.xml.Root;
@Entity
@FetchGroups({
- @FetchGroup(name = "roomModerators", attributes = { @FetchAttribute(name = "moderators"), @FetchAttribute(name = "roomGroups") })
+ @FetchGroup(name = "roomModerators", attributes = { @FetchAttribute(name = "moderators") })
+ , @FetchGroup(name = "roomGroups", attributes = { @FetchAttribute(name = "roomGroups") })
})
@NamedQueries({
@NamedQuery(name = "getNondeletedRooms", query = "SELECT r FROM Room r WHERE r.deleted = false"),