I am trying to implement a web service that uses open JPA to access the data layer. I am using websphere v7.0 and JPA 2.0. This service is going to get all rows out of a small db (about 6 rows and it won't expand much at all in the future). I am attempting to get all rows and return them through the user. I am right now creating the Session Bean that will retrieve the data.
I have several JPA objects one of them (representing a row of all the data I want to return) looks like so...
@Entity
@NamedQueries({
@NamedQuery(name="EmailDomainTrust.getEmailDomains",
query="SELECT DOMAIN_NAME,"+
"DESCRIPTION, CONFIRMED_BY, CONFIRMED_DATE" +
"FROM EMAIL_DOMAIN_TRUST")
})
@Table(name="EMAIL_DOMAIN_TRUST")
public class EmailDomainTrust implements Serializable {
@Id
@Column(name="EMAIL_DOMAIN_TRUST_ID")
private long emailDomainTrustId;
@Column(name="DOMAIN_NAME")
private String domainName;
}
There is a lot more in there, but I don't want to make this too long. I just thought I would show a couple usefull variables and maybe some get sets. In my session bean I am trying to get all the rows...
public List<EmailDomainTrust> GetEmailDomains(){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("");
EntityManager em = emf.createEntityManager();
//EntityTransaction userTransaction = em.getTransaction();
System.out.println("Testing 1..2...3...!");
List<EmailDomainTrust> ListOfEmailDomains = em.find(EmailDomainTrust.class, arg1)
try
{
}
catch(Exception e)
{
}
return null;
}
What I have so far is definitely not up to snuff. But the tutorials online never describe getting all rows out of a table. I won't have any parameters for this method, so I won't be able to select based on ID or anything like that. Any advice would be great.
You can use NamedQuery
@NamedQueries({
@NamedQuery(name="EmailDomainTrust.getEmailDomains",
query="SELECT e FROM EmailDomainTrust e")
})
in session bean:
return em.createNamedQuery("EmailDomainTrust.getEmailDomains", EmailDomainTrust.class).getResultList();