I can't seem to get an EntityManager persisted automatically in a @Stateless EJB... any help appreciated.
TService.java
package tester;
import org.jboss.annotation.ejb.Management;
import org.jboss.annotation.ejb.Service;
@Service (objectName="testingt:service=testingt")
@Management(TServiceInterface.class)
public class TService implements TServiceInterface {
public void doSomething() {
TestEntityManager tem = new TestEntityManager();
tem.listEntities();
}
}
package tester;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
@Stateless
public class TestEntityManager implements TestEntityManagerInterface {
@PersistenceContext(unitName="Tester")
EntityManager em;
public List listEntities() {
Query query = em.createQuery("from TestEntity testEntity");
return query.getResultList();
}
}
package tester;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratorType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="testentity")
public class TestEntity implements Serializable {
public static final long serialVersionUID = 1L;
private Integer id;
private String name;
public void setId(Integer id) {
this.id = id;
}
@Id(generate=GeneratorType.AUTO)
@Column(name="id")
public Integer getId(){
return this.id;
}
public void setName(String name) {
this.name = name;
}
@Column(name="name")
public String getName(){
return this.name;
}
}
<?xml version="1.0" encoding="UTF-8"?> <entity-manager> <name>Tester</name> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/DefaultDS</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> </properties> </entity-manager>