that : was a typefault.
but here is the code of User.java:
package com.spotmyfriend.backend.entity;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity(name = "User")
@Table(name = "User")
@NamedQueries( {
@NamedQuery(name = "User.byUserId", query = "SELECT object(u) FROM User u WHERE u.userid = :uid"),
@NamedQuery(name = "User.ByName", query = "SELECT object(u) FROM User u WHERE u.naam = :uname"),
@NamedQuery(name = "User.doLogin", query = "SELECT object(u) FROM User u WHERE u.naam = :uname AND u.password = :password"),
@NamedQuery(name = "User.getAllUsers", query = "SELECT u FROM User u")
})
public class User implements Serializable {
private static final long serialVersionUID = 7221049085316069742L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int userid;
private String naam;
private String email;
private String password;
private int telefoonnummer;
private String provider;
private String adres;
private String postcode;
private String plaats;
private String verbindingtype;
private String locatiebepalingtype;
private boolean googleMaps;
private boolean active;
private String role;
@OneToOne
private Friend friend;
@ManyToMany(targetEntity = Module.class,fetch=FetchType.EAGER)
@JoinTable(name = "modules_users",
joinColumns = @JoinColumn(name = "userid"),
inverseJoinColumns = @JoinColumn(name = "modid"))
private Set<Module> modules;
@OneToOne(targetEntity=FriendList.class)
private FriendList friendlist;
public User() {
}
public User(String naam, String email, String password, int telefoonnr,
String provider, String adres, String postcode, String plaats,
String verbindingtype, String locatiebepalingtype,
boolean googleMaps, boolean active, String role) {
this.naam = naam;
this.email = email;
this.password = password;
this.telefoonnummer = telefoonnr;
this.provider = provider;
this.adres = adres;
this.postcode = postcode;
this.plaats = plaats;
this.verbindingtype = verbindingtype;
this.locatiebepalingtype = locatiebepalingtype;
this.googleMaps = googleMaps;
this.active = true;
this.role = role;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getNaam() {
return naam;
}
public void setNaam(String naam) {
this.naam = naam;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getTelefoonnummer() {
return telefoonnummer;
}
public void setTelefoonnummer(int telefoonnummer) {
this.telefoonnummer = telefoonnummer;
}
public String getProvider() {
return provider;
}
public void setProvider(String provider) {
this.provider = provider;
}
public String getAdres() {
return adres;
}
public void setAdres(String adres) {
this.adres = adres;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public String getPlaats() {
return plaats;
}
public void setPlaats(String plaats) {
this.plaats = plaats;
}
public String getVerbindingtype() {
return verbindingtype;
}
public void setVerbindingtype(String verbindingtype) {
this.verbindingtype = verbindingtype;
}
public String getLocatiebepalingtype() {
return locatiebepalingtype;
}
public void setLocatiebepalingtype(String locatiebepalingtype) {
this.locatiebepalingtype = locatiebepalingtype;
}
public boolean isGoogleMaps() {
return googleMaps;
}
public void setGoogleMaps(boolean googleMaps) {
this.googleMaps = googleMaps;
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public Set<Module> getModules() {
if (modules == null) {
modules = new HashSet<Module>();
}
return modules;
}
public void setModules(Module activeModules) {
this.modules.add(activeModules);
}
public Friend getFriend() {
return friend;
}
public void setFriend(Friend friendType) {
this.friend = friendType;
}
public FriendList getFriendlist() {
return friendlist;
}
public void setFriendlist(FriendList friendlist) {
this.friendlist = friendlist;
}
@Override
public String toString() {
String s = "----------------- user -------------\n";
s += "userid: " + getUserid() + "\n";
s += "Naam: " + getNaam() + "\n";
s += "Adres: " + getAdres() + "\n";
s += "Email: " + getEmail() + "\n";
s += "Password:" + getPassword() + "\n";
s += "Postcode: " + getPostcode() + "\n";
s += "Plaats: " + getPlaats() + "\n";
s += "Telefoonnr:" + getTelefoonnummer() + "\n";
s += "Provider: " + getProvider() + "\n";
s += "Verbindingstype: " + getVerbindingtype() + "\n";
s += "Locatiebepalingstype: " + getLocatiebepalingtype() + "\n";
s += "GoogleMaps: " + isGoogleMaps() + "\n";
s += "------------------------------------\n";
s+= "heeft de volgende modules geactiveerd: ";
Set<Module> mods = getModules();
if(mods.size()>0) {
for(Module m: mods) {
s+= ""+m.getNaam();
}
}
s+= "\n";
FriendList fl = getFriendlist();
Set<Friend> friends = fl.getFriends();
if(friends.size()>1) {
s+= "heeft vrienden: ";
for(Friend f : friends) {
s+= "Naam: "+f.getUser().getNaam();
s+= "Geblokkeerd: "+f.isBlocked();
}
} else {
s+= "geen vrienden geregistreerd";
}
s+= "\n";
System.out.println(s);
return s;
}
}
and this is the UserManagerBean.java:
package com.spotmyfriend.backend.sessionbeans.usermanagement;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import com.spotmyfriend.backend.entity.Module;
import com.spotmyfriend.backend.entity.User;
@Remote(UserManager.class)
@Local(UserManager.class)
@Stateful(name = "UserManager")
public class UserManagerBean implements Serializable, UserManager {
private static final long serialVersionUID = 2667633265960007691L;
private User user;
@PersistenceContext(unitName = "spotmyfriend")
private EntityManager em;
public UserManagerBean(User user) {
this.user = user;
}
private EntityManager getEm() {
return em;
}
@SuppressWarnings("unchecked")
public List<User> getAllUsers() {
List<User> result = getEm().createNamedQuery("User.getAllUsers")
.getResultList();
return result;
}
public void addModule(Module module) {
user.setModules(module);
module.setUser(user);
getEm().merge(user);
getEm().merge(module);
}
public void removeModule(Module module) {
Collection<Module> modules = user.getModules();
modules.remove(module);
getEm().merge(user);
}
public boolean isAdmin() {
if (user.getRole().equals("administrator")) {
return true;
}
return false;
}
public List<User> search(String col, String value) {
// q.setParameter gebruiken tegen sql-injection!!!
Query q = getEm().createQuery("SELECT object(u) FROM User u WHERE "
+ col + " LIKE :value").setParameter("value", value);
return q.getResultList();
}
public User getUserById(int uid) {
Query q = em.createNamedQuery("User.byUserId").setParameter("uid", uid);
User u = (User) q.getSingleResult();
return u;
}
}
the clientcode i execute is:
String factory = "org.jnp.interfaces.NamingContextFactory";
String url = "127.0.0.1:1099";
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, factory);
properties.put(Context.PROVIDER_URL, url);
InitialContext ctx = new InitialContext(properties);
UserManager um = (UserManager) ctx.lookup("UserManager/remote");
User u = um.getUserById(1);
u.toString();
thanks in advance!