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());