[jboss-user] [EJB 3.0] - Re: Illegalargumentexception on calling namedquery
auke@noppe.nl
do-not-reply at jboss.com
Mon Jun 9 07:24:47 EDT 2008
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!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4156647#4156647
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4156647
More information about the jboss-user
mailing list