--- /dev/null
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jusercore.exceptions;
+
+import java.text.MessageFormat;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * An exception thrown when the user's email address is already registered.
+ * <p>
+ * @author Roland Haeder
+ */
+public class EmailAddressAlreadyRegisteredException extends Exception {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 16_435_892_878_271L;
+
+ /**
+ * Constructor with already registered user instance
+ * <p>
+ * @param user User instance
+ */
+ public EmailAddressAlreadyRegisteredException (final User user) {
+ // Call super contructor
+ super(MessageFormat.format("User {0} already registered with number {1} at record id {2}. Maybe forgot to call isRegistered(user) ?", user, user.getUserName(), user.getUserId()));
+ }
+}
+++ /dev/null
-/*
- * Copyright (C) 2015 Roland Haeder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jusercore.exceptions;
-
-import java.text.MessageFormat;
-import org.mxchange.jusercore.model.user.User;
-
-/**
- * An exception thrown when the customer is already registered
- * <p>
- * @author Roland Haeder
- */
-public class UserAlreadyRegisteredException extends Exception {
-
- /**
- * Serial number
- */
- private static final long serialVersionUID = 16_435_892_878_271L;
-
- /**
- * Constructor with already registered user instance
- * <p>
- * @param user User instance
- */
- public UserAlreadyRegisteredException (final User user) {
- // Call super contructor
- super(MessageFormat.format("User {0} already registered with number {1} at record id {2}. Maybe forgot to call isRegistered(user) ?", user, user.getUserName(), user.getUserId()));
- }
-}
--- /dev/null
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jusercore.exceptions;
+
+import java.text.MessageFormat;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * An exception thrown when the user name is already registered
+ * <p>
+ * @author Roland Haeder
+ */
+public class UserNameAlreadyRegisteredException extends Exception {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 16_435_892_878_271L;
+
+ /**
+ * Constructor with already registered user instance
+ * <p>
+ * @param user User instance
+ */
+ public UserNameAlreadyRegisteredException (final User user) {
+ // Call super contructor
+ super(MessageFormat.format("User name {0} already registered at record id {2}. Maybe forgot to call isRegistered(user) ?", user.getUserName(), user.getUserId()));
+ }
+}
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
*/
@Entity (name = "users")
@Table (name = "users")
+@NamedQueries(
+ {
+ @NamedQuery(name = "AllUserNames", query = "SELECT DISTINCT u.userName FROM users AS u ORDER BY u.userId ASC"),
+ @NamedQuery(name = "AllEmailAddresses", query = "SELECT DISTINCT c.emailAddress FROM contacts AS c ORDER BY c.contactId ASC"),
+ @NamedQuery(name = "SearchUserName", query = "SELECT u FROM users AS u WHERE LOWER(u.userName) LIKE LOWER(:param)"),
+ @NamedQuery(name = "SearchEmailAddress", query = "SELECT u FROM users AS u INNER JOIN contacts AS c ON u.userContact = c WHERE LOWER(c.emailAddress) LIKE LOWER(:param)")
+ }
+)
public class LoginUser implements User {
/**