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 2019/06/29 03:48:51 UTC
[openmeetings] 01/02: [OPENMEETINGS-2044] some indicies are added
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
commit 28281e7ecefebddcfcac7514862f0caca1f3647a
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat Jun 29 10:47:13 2019 +0700
[OPENMEETINGS-2044] some indicies are added
---
.../db/dao/calendar/MeetingMemberDao.java | 4 +-
.../db/entity/basic/Configuration.java | 17 +++++---
.../db/entity/calendar/Appointment.java | 5 ++-
.../openmeetings/db/entity/file/BaseFileItem.java | 5 ++-
.../openmeetings/db/entity/file/FileItemLog.java | 2 +
.../openmeetings/db/entity/room/Invitation.java | 7 ++-
.../apache/openmeetings/db/entity/room/Room.java | 5 ++-
.../db/entity/server/RemoteSessionObject.java | 50 ++++++++++++++--------
.../openmeetings/db/entity/server/SOAPLogin.java | 5 ++-
.../openmeetings/db/entity/server/Sessiondata.java | 5 ++-
.../apache/openmeetings/db/entity/user/Group.java | 5 ++-
.../apache/openmeetings/db/entity/user/User.java | 7 ++-
.../apache/openmeetings/backup/BackupImport.java | 8 +---
13 files changed, 82 insertions(+), 43 deletions(-)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
index afc0730..4bfa453 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
@@ -38,9 +38,9 @@ public class MeetingMemberDao {
@PersistenceContext
private EntityManager em;
- public MeetingMember get(Long meetingMemberId) {
+ public MeetingMember get(Long id) {
List<MeetingMember> list = em.createNamedQuery("getMeetingMemberById", MeetingMember.class)
- .setParameter("id", meetingMemberId).getResultList();
+ .setParameter("id", id).getResultList();
return list.size() == 1 ? list.get(0) : null;
}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
index 1b031a7..8b1ccd3 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
@@ -18,11 +18,7 @@
*/
package org.apache.openmeetings.db.entity.basic;
-import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.HistoricalEntity;
-import org.apache.openmeetings.db.entity.user.User;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.Root;
+import static java.lang.Boolean.TRUE;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -30,13 +26,18 @@ import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
-import static java.lang.Boolean.TRUE;
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
@Entity
@NamedQuery(name = "forceGetConfigurationByKey", query = "SELECT c FROM Configuration c WHERE c.key LIKE :key")
@@ -47,7 +48,9 @@ import static java.lang.Boolean.TRUE;
@NamedQuery(name = "getConfigurationById", query = "SELECT c FROM Configuration c "
+ "LEFT JOIN FETCH c.user WHERE c.id = :id and c.deleted = false")
@NamedQuery(name = "countConfigurations", query = "SELECT COUNT(c) FROM Configuration c WHERE c.deleted = false")
-@Table(name = "configuration")
+@Table(name = "configuration", indexes = {
+ @Index(name = "key_idx", columnList = "om_key", unique = true)
+})
@Root(name = "config")
public class Configuration extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
index f929491..0c22c0c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
@@ -32,6 +32,7 @@ import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
@@ -47,7 +48,9 @@ import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Entity
-@Table(name = "appointment")
+@Table(name = "appointment", indexes = {
+ @Index(name = "title_idx", columnList = "title")
+})
@NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.id = :id")
@NamedQuery(name="getAppointmentByIdAny", query="SELECT a FROM Appointment a WHERE a.id = :id")
@NamedQuery(name="getAppointments", query="SELECT a FROM Appointment a WHERE a.deleted = false ORDER BY a.id")
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
index aba7af0..ffda12b 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
@@ -43,6 +43,7 @@ import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.NamedQuery;
@@ -67,7 +68,9 @@ import org.simpleframework.xml.Element;
+ " ORDER BY f.name")
@NamedQuery(name = "getFileItemsByIds", query = "SELECT f FROM BaseFileItem f"
+ " WHERE f.deleted = false AND f.id IN :ids")
-@Table(name = "om_file")
+@Table(name = "om_file", indexes = {
+ @Index(name = "file_hash_idx", columnList = "hash", unique = true)
+})
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class BaseFileItem extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
index 3b2aa15..b882059 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
@@ -29,6 +29,7 @@ import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQuery;
+import javax.persistence.Table;
import org.apache.openmeetings.db.entity.IDataProviderEntity;
@@ -36,6 +37,7 @@ import org.apache.openmeetings.db.entity.IDataProviderEntity;
@NamedQuery(name = "getFileLogsByFile", query = "SELECT fl FROM FileItemLog fl WHERE fl.fileId = :fileId")
@NamedQuery(name = "countErrorFileLogsByFile", query = "SELECT COUNT(fl) FROM FileItemLog fl WHERE fl.fileId = :fileId AND fl.optional = false AND fl.exitCode <> 0")
@NamedQuery(name = "deleteErrorFileLogsByFile", query = "DELETE FROM FileItemLog fl WHERE fl.fileId = :fileId")
+@Table(name = "file_log")
public class FileItemLog implements IDataProviderEntity {
private static final long serialVersionUID = 1L;
public static final int MAX_LOG_SIZE = 1 * 1024 * 1024;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
index f5c57bc..83c618d 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
@@ -29,6 +29,7 @@ import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
@@ -45,7 +46,9 @@ import org.apache.openmeetings.db.entity.user.User;
@NamedQuery(name = "getInvitationbyId", query = "SELECT i FROM Invitation i WHERE i.deleted = false AND i.id = :id")
@NamedQuery(name = "getInvitationByHashCode", query = "SELECT i FROM Invitation i where i.hash LIKE :hashCode AND i.deleted = false")
@NamedQuery(name = "getInvitationByAppointment", query = "SELECT i FROM Invitation i WHERE i.appointment.id = :appointmentId")
-@Table(name = "invitation")
+@Table(name = "invitation", indexes = {
+ @Index(name = "inv_hash_idx", columnList = "hash", unique = true)
+})
public class Invitation extends HistoricalEntity {
private static final long serialVersionUID = 1L;
public static final String SELECT_I = "SELECT i ";
@@ -94,7 +97,7 @@ public class Invitation extends HistoricalEntity {
private Recording recording;
// the hash for the link
- @Column(name = "hash")
+ @Column(name = "hash", unique = true)
private String hash;
@ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
index 9d7eb70..43e6657 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
@@ -35,6 +35,7 @@ import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.NamedQuery;
@@ -81,7 +82,9 @@ import org.simpleframework.xml.Root;
@NamedQuery(name = "getGroupRooms", query = "SELECT DISTINCT rg.room FROM RoomGroup rg LEFT JOIN FETCH rg.room "
+ "WHERE rg.group.id = :groupId AND rg.room.deleted = false AND rg.room.appointment = false "
+ "ORDER BY rg.room.name ASC")
-@Table(name = "room")
+@Table(name = "room", indexes = {
+ @Index(name = "room_name_idx", columnList = "name")
+})
@Root(name = "room")
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
index 5e83929..b8935b9 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
@@ -29,8 +29,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * This Class is marshaled as an XML-Object and stored as a String in the DB to make
- * it more easy to extend it
+ * This Class is marshaled as an XML-Object and stored as a String in the DB to
+ * make it more easy to extend it
*
* @author sebastianwagner
*
@@ -54,32 +54,33 @@ public class RemoteSessionObject {
private String externalUserType;
public RemoteSessionObject() {
- //def constructor
+ // def constructor
}
- public RemoteSessionObject(String username, String firstname, String lastname,
- String pictureUrl, String email) {
+ public RemoteSessionObject(String username, String firstname, String lastname, String pictureUrl, String email) {
this(username, firstname, lastname, pictureUrl, email, "0", "");
}
/**
- * @param username - username
- * @param firstname - first name
- * @param lastname - last name
- * @param pictureUrl - picture url
- * @param email - email
- * @param externalUserId - external user id
- * @param externalUserType - external user type
- *
- * 06.09.2009 17:05:48
- * sebastianwagner
- *
+ * @param username
+ * - username
+ * @param firstname
+ * - first name
+ * @param lastname
+ * - last name
+ * @param pictureUrl
+ * - picture url
+ * @param email
+ * - email
+ * @param externalUserId
+ * - external user id
+ * @param externalUserType
+ * - external user type
*
+ * 06.09.2009 17:05:48 sebastianwagner
*/
- public RemoteSessionObject(String username, String firstname,
- String lastname, String pictureUrl, String email,
+ public RemoteSessionObject(String username, String firstname, String lastname, String pictureUrl, String email,
String externalUserId, String externalUserType) {
- super();
this.username = username;
this.firstname = firstname;
this.lastname = lastname;
@@ -92,30 +93,39 @@ public class RemoteSessionObject {
public String getUsername() {
return username;
}
+
public void setUsername(String username) {
this.username = username;
}
+
public String getFirstname() {
return firstname;
}
+
public void setFirstname(String firstname) {
this.firstname = firstname;
}
+
public String getLastname() {
return lastname;
}
+
public void setLastname(String lastname) {
this.lastname = lastname;
}
+
public String getPictureUrl() {
return pictureUrl;
}
+
public void setPictureUrl(String pictureUrl) {
this.pictureUrl = pictureUrl;
}
+
public String getEmail() {
return email;
}
+
public void setEmail(String email) {
this.email = email;
}
@@ -123,6 +133,7 @@ public class RemoteSessionObject {
public String getExternalUserId() {
return externalUserId;
}
+
public void setExternalUserId(String externalUserId) {
this.externalUserId = externalUserId;
}
@@ -130,6 +141,7 @@ public class RemoteSessionObject {
public String getExternalUserType() {
return externalUserType;
}
+
public void setExternalUserType(String externalUserType) {
this.externalUserType = externalUserType;
}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
index fcc22f0..9800f9e 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
@@ -26,11 +26,14 @@ import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
-@Table(name = "soaplogin")
+@Table(name = "soaplogin", indexes = {
+ @Index(name = "soap_hash_idx", columnList = "hash", unique = true)
+})
@NamedQuery(name = "getSoapLoginByHash", query = "SELECT s FROM SOAPLogin s WHERE s.hash LIKE :hash")
public class SOAPLogin implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
index c20b106..edeb124 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
@@ -26,6 +26,7 @@ import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.Lob;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@@ -34,7 +35,9 @@ import javax.xml.bind.annotation.XmlRootElement;
@Entity
@NamedQuery(name = "getSessionById", query = "SELECT s FROM Sessiondata s WHERE s.sessionId LIKE :sessionId")
@NamedQuery(name = "getSessionToDelete", query = "SELECT s FROM Sessiondata s WHERE s.refreshed < :refreshed AND s.permanent = false")
-@Table(name = "sessiondata")
+@Table(name = "sessiondata", indexes = {
+ @Index(name = "session_id_idx", columnList = "session_id", unique = true)
+})
@XmlRootElement
public class Sessiondata implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
index b55d386..eae965d 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
@@ -23,6 +23,7 @@ import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@@ -39,7 +40,9 @@ import org.simpleframework.xml.Root;
@NamedQuery(name = "getNondeletedGroups", query = "SELECT g FROM Group g WHERE g.deleted = false ORDER BY g.id")
@NamedQuery(name = "countGroups", query = "SELECT COUNT(g) FROM Group AS g WHERE g.deleted = false")
@NamedQuery(name = "getLimitedGroups", query = "SELECT g FROM Group AS g WHERE g.deleted = false AND g.limited = true")
-@Table(name = "om_group")
+@Table(name = "om_group", indexes = {
+ @Index(name = "group_name_idx", columnList = "name")
+})
@Root(name = "organisation")
public class Group extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
index 8c5a7ff..f3619bf 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
@@ -44,6 +44,7 @@ import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
@@ -104,7 +105,11 @@ import org.simpleframework.xml.Root;
+ "gu.group.deleted = false AND gu.group.external = true AND gu.group.name = :externalType "
+ "AND gu.user.deleted = false AND gu.user.type = :type AND gu.user.externalId = :externalId")
@NamedQuery(name = "getUserByLoginOrEmail", query = "SELECT u from User u WHERE u.deleted = false AND u.type = :type AND (u.login = :userOrEmail OR u.address.email = :userOrEmail)")
-@Table(name = "om_user")
+@Table(name = "om_user", indexes = {
+ @Index(name = "login_idx", columnList = "login")
+ , @Index(name = "lastname_idx", columnList = "lastname")
+ , @Index(name = "firstname_idx", columnList = "firstname")
+})
@Root(name = "user")
public class User extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index fdef9cb..4ff4398 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@ -839,9 +839,7 @@ public class BackupImport {
fileMap.put(String.format(FILE_NAME_FMT, name, EXTENSION_JPG), String.format(FILE_NAME_FMT, r.getHash(), EXTENSION_PNG));
fileMap.put(String.format("%s.%s.%s", name, "flv", EXTENSION_MP4), String.format(FILE_NAME_FMT, r.getHash(), EXTENSION_MP4));
}
- if (Strings.isEmpty(r.getHash())) {
- r.setHash(randomUUID().toString());
- }
+ r.setHash(randomUUID().toString());
r = recordingDao.update(r);
fileItemMap.put(recId, r.getId());
}
@@ -964,9 +962,7 @@ public class BackupImport {
if (file.getParentId() != null && file.getParentId().longValue() <= 0L) {
file.setParentId(null);
}
- if (Strings.isEmpty(file.getHash())) {
- file.setHash(randomUUID().toString());
- }
+ file.setHash(randomUUID().toString());
file = fileItemDao.update(file);
result.add(file);
fileItemMap.put(fId, file.getId());