Hi, maybe try openejb:Resource/gsite_mysql as jta datasource name with eclipselink Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau
2013/9/13 beginner_user <[email protected]>: > Hi, > > I am using TomeEE + MySql and i have problem because function > createNamedQuery don't returns any results. I thought that problem is with > my > entityManager but i checked in debugMode and is injected. > > This is my code: > > User Entity: > > package pl.gsite.db.model; > > import java.io.Serializable; > import javax.persistence.Basic; > import javax.persistence.Column; > import javax.persistence.Entity; > import javax.persistence.Id; > import javax.persistence.NamedQueries; > import javax.persistence.NamedQuery; > import javax.persistence.Table; > import javax.validation.constraints.NotNull; > import javax.validation.constraints.Size; > import javax.xml.bind.annotation.XmlRootElement; > > > @Entity > @Table(name = "user") > @XmlRootElement > @NamedQueries({ > @NamedQuery(name = "User.loginAndPassword", query = "SELECT u FROM User > u WHERE u.login = :login and u.password = :password"), > @NamedQuery(name = "User.findAll", query = "SELECT u FROM User u"), > @NamedQuery(name = "User.findById", query = "SELECT u FROM User u WHERE > u.id = :id"), > @NamedQuery(name = "User.findByLogin", query = "SELECT u FROM User u > WHERE u.login = :login"), > @NamedQuery(name = "User.findByPassword", query = "SELECT u FROM User u > WHERE u.password = :password")}) > public class User implements Serializable { > private static final long serialVersionUID = 1L; > @Id > @Basic(optional = false) > @NotNull > @Column(name = "id") > private Integer id; > @Size(max = 100) > @Column(name = "login") > private String login; > @Size(max = 100) > @Column(name = "password") > private String password; > > public User() { > } > > public User(Integer id) { > this.id = id; > } > > public Integer getId() { > return id; > } > > public void setId(Integer id) { > this.id = id; > } > > public String getLogin() { > return login; > } > > public void setLogin(String login) { > this.login = login; > } > > public String getPassword() { > return password; > } > > public void setPassword(String password) { > this.password = password; > } > > @Override > public int hashCode() { > int hash = 0; > hash += (id != null ? id.hashCode() : 0); > return hash; > } > > @Override > public boolean equals(Object object) { > // TODO: Warning - this method won't work in the case the id fields > are not set > if (!(object instanceof User)) { > return false; > } > User other = (User) object; > if ((this.id == null && other.id != null) || (this.id != null && > !this.id.equals(other.id))) { > return false; > } > return true; > } > > @Override > public String toString() { > return "pl.gsite.db.model.User[ id=" + id + " ]"; > } > > } > > > My ManagedBean: > > package pl.gsite.bean.request; > > import java.util.ArrayList; > import java.util.List; > import javax.ejb.Stateful; > import javax.inject.Named; > import javax.enterprise.context.RequestScoped; > import javax.enterprise.context.spi.Context; > import javax.inject.Inject; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.TypedQuery; > import pl.gsite.bean.session.LoggedUserBean; > import pl.gsite.db.model.User; > import javax.persistence.NoResultException; > import javax.persistence.PersistenceContextType; > import javax.persistence.Query; > > > > @Named(value = "loginRequest") > @RequestScoped > public class LoginRequest { > @PersistenceContext(unitName = "gsitePU") > private EntityManager em; > > @Inject > private LoggedUserBean loggedUserBean; > private String login; > private String password; > > public LoginRequest() { > } > > public String authentication() { > try { > List<User> uList = new ArrayList<User>(); > TypedQuery qq = em.createNamedQuery("User.findAll", User.class); > uList = qq.getResultList(); // <-- returns empty list > TypedQuery<User> query = > em.createNamedQuery("User.loginAndPassword", > User.class).setParameter("login", login).setParameter("password", password); > User u = query.getSingleResult(); // <-- throws an > NoResultException > this.loggedUserBean.setLoggedUser(u); > } > catch(NoResultException e) { > e.printStackTrace(); > } > > return "index"; > } > > /** > * @return the login > */ > public String getLogin() { > return login; > } > > /** > * @param login the login to set > */ > public void setLogin(String login) { > this.login = login; > } > > /** > * @return the password > */ > public String getPassword() { > return password; > } > > /** > * @param password the password to set > */ > public void setPassword(String password) { > this.password = password; > } > } > > > > persistance.xml: > <?xml version="1.0" encoding="UTF-8"?> > <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/persistence > http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> > <persistence-unit name="gsitePU" transaction-type="JTA"> > <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> > <jta-data-source>gsite_mysql</jta-data-source> > <properties> > <property name="openjpa.jdbc.SynchronizeMappings" > value="buildSchema(foreignKeys=true)"/> > </properties> > </persistence-unit> > </persistence> > > > > > -- > View this message in context: > http://openejb.979440.n4.nabble.com/TomEE-and-MySql-query-don-t-returns-any-results-tp4665069.html > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
