EJB QL 通常不直接这样写。 你想要做的可以写成这样:SELECT OBJECT( c ) FROM Course AS c然后你直接用c.getClasses()不就可以得到一个course 的所有classes了吗?或者反过来,
SELECT OBJECT( c ) FROM Class AS c
然后用c.getCourse()不就可以得到一个class 所属的course了吗?
SELECT OBJECT( c ) FROM Class AS c
然后用c.getCourse()不就可以得到一个class 所属的course了吗?
解决方案 »
- 为什么JSP页面数据传不到actionform
- TOMCAT 编码问题
- 大家帮帮我啊 !!!
- 在Struts2中使用showModalDialog打开一个窗体时的错误!!!!
- Tomcat5.5连SQL2000+pack4启动抛异常,不知道哪里出问题了,急死了~~~~
- 相同功能HQL与SQL但在Hibernate中报错
- struts中访问ejb一问
- struts编程中碰到的问题,怎么才能让&不转换为&
- 调用JFreeChart出错 在线等待解答,嫌分不够可再开帖相送
- springmvc+mybatis整合启动报错
- List中的数据存放进Map中的问题
- 新手求教htmlparser 简单问题
单向 公司 和员工的 从公司可以找到所有员工
@Entity(name="CompanyOMUni")
public class Company implements Serializable {
private int id;
private String name;
private Collection<Employee> employees;
public Company() {
id = (int)System.nanoTime();
}
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 1:N 关系 获取员工
@OneToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
public Collection<Employee> getEmployees() {
return employees;
}
//设置员工信息
public void setEmployees(Collection<Employee> employees) {
this.employees = employees;
}员工
@Entity(name = "EmployeeOMUni")
public class Employee implements Serializable
{ private int id;
private String name;
private char sex; public Employee()
{
id = (int) System.nanoTime();
} @Id
public int getId()
{
return id;
} public void setId(int id)
{
this.id = id;
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} public char getSex()
{
return sex;
} public void setSex(char sex)
{
this.sex = sex;
}
}在会话bean里加入了公司和员工
@Stateless
public class CompanyEmployeeOMUniBean implements CompanyEmployeeOM {
@PersistenceContext
EntityManager em; public void doSomeStuff() {
Company c = new Company(); //新公司
c.setName("M*Power Internet Services, Inc.");
Collection<Employee> employees = new ArrayList<Employee>();
Employee e = new Employee();
e.setName("Micah Silverman");
e.setSex('M');
employees.add(e);
e = new Employee();
e.setName("Tes Silverman");
e.setSex('F');
employees.add(e);
c.setEmployees(employees);
em.persist(c);
//新公司
c = new Company();
c.setName("Sun Microsystems");
employees = new ArrayList<Employee>();
e = new Employee();
e.setName("Rima Patel");
e.setSex('F');
employees.add(e);
e = new Employee();
e.setName("James Gosling");
e.setSex('M');
employees.add(e);
c.setEmployees(employees);
em.persist(c);
em.persist(c);
} public List getCompanies() {
Query q = em.createQuery("SELECT c FROM CompanyOMUni c");
return q.getResultList();
}
public List getCompanies2(String query) {
Query q = em.createQuery(query);
return q.getResultList();
}
public void deleteCompanies() {
Query q = em.createQuery("DELETE FROM CompanyOMUni");
q.executeUpdate();
}
}客户端
InitialContext ic = new InitialContext();
CompanyEmployeeOM ceom = (CompanyEmployeeOM)ic.lookup(CompanyEmployeeOM.class.getName());
ceom.deleteCompanies();
ceom.doSomeStuff();
System.out.println("All Companies:");
for (Object o : ceom.getCompanies()) {
Company c = (Company)o;
System.out.println("Here are the employees for company: "+c.getName());
for (Employee e : c.getEmployees()) {
System.out.println("\tName: "+e.getName()+", Sex: "+e.getSex());
}
System.out.println();
}