[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