X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fusermgt%2FUser.java;fp=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fusermgt%2FUser.java;h=00280bcc49bbbdba709e69d9de2d253950a6abfd;hb=1649e57210e0ce7319ec1816a3e5de24883807db;hp=8bccfabad6ca0435a30e1ae5b40ba096d53c1b8c;hpb=8c42393f683f8b12d76db80db38ca808dc01d023;p=utils diff --git a/security/impl/src/main/java/org/wamblee/usermgt/User.java b/security/impl/src/main/java/org/wamblee/usermgt/User.java index 8bccfaba..00280bcc 100644 --- a/security/impl/src/main/java/org/wamblee/usermgt/User.java +++ b/security/impl/src/main/java/org/wamblee/usermgt/User.java @@ -25,11 +25,15 @@ import java.io.Serializable; import java.util.Set; import java.util.TreeSet; +import javax.persistence.CascadeType; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Transient; import javax.persistence.Version; @@ -41,16 +45,27 @@ import javax.persistence.Version; */ @Entity @Table(name = "SEC_USER") -public class User implements Serializable, - Comparable { - +@NamedQueries( { + @NamedQuery(name = User.QUERY_FIND_BY_NAME, query = "select u from User u where u.name = :" + + User.NAME_PARAM), + @NamedQuery(name = User.QUERY_FIND_BY_GROUP_NAME, query = "select user from User user join user.groups grp where grp.name = :name"), + @NamedQuery(name = User.QUERY_COUNT_USERS, query = "select count(u) from User u"), + @NamedQuery(name = User.QUERY_ALL_USERS, query = "select u from User u")}) +public class User implements Serializable, Comparable { + + public static final String QUERY_FIND_BY_NAME = "User.findByName"; + public static final String QUERY_FIND_BY_GROUP_NAME = "User.findByGroupName"; + public static final String QUERY_COUNT_USERS = "User.count"; + public static final String QUERY_ALL_USERS = "User.all"; + public static final String NAME_PARAM = "name"; + @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long primaryKey; @Version private int version; - + /** * User name. */ @@ -64,7 +79,7 @@ public class User implements Serializable, /** * Groups the user belongs to. */ - @ManyToMany + @ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.EAGER) private Set groups; /** @@ -107,6 +122,8 @@ public class User implements Serializable, * */ public User(User aUser) { + primaryKey = aUser.primaryKey; + version = aUser.version; name = aUser.name; password = aUser.password; groups = new TreeSet(); @@ -385,7 +402,7 @@ public class User implements Serializable, public int compareTo(Object aUser) { return name.compareTo(((User) aUser).name); } - + public Long getPrimaryKey() { return primaryKey; }