Caucho maker of Resin Server | Application Server (Java EE Certified) and Web Server


 

Resin Documentation

home company docs 
app server 
 Resin Server | Application Server (Java EE Certified) and Web Server
 

query cmp


The Amber Query API resembles the JDBC PreparedStatement with enhanced SQL and direct support for objects.

Demo

Files in this tutorial

WEB-INF/resin-web.xmlresin-web.xml configuration
WEB-INF/classes/META-INF/persistence.xmlpersistence.xml configuration
WEB-INF/classes/example/Student.javaThe student bean
WEB-INF/classes/example/House.javaThe house bean
WEB-INF/classes/example/QueryServlet.javaThe course servlet

Database Schema

House.java
@Entity
public class House {
  @Id@Column(name="id")
  public long getId()

  @Basic
  public String getName()

  @OneToMany(targetEntity=Student.class,
        mappedBy="house")
  public Collection getStudentList()
}
Student.java
@Entity
public class Student {
  @Id@Column(name="id")
  public long getId()

  @Basic
  public String getName()

  @ManyToOne@JoinColumn(name="house")
  public House getHouse()
}

Query

QueryServlet.java
  private void doService(PrintWriter out)
    throws java.io.IOException
  {
    Query allHouse = _entityManager.createQuery("SELECT o FROM House o");
    
    String sql = ("SELECT s" +
		  " FROM House h, IN(h.studentList) s" +
		  " WHERE h.id=?1 AND s.gender='M'");
    Query boysInHouse = _entityManager.createQuery(sql);
    
    List houses = allHouse.getResultList();

    for (int i = 0; i < houses.size(); i++) {
      House house = (House) houses.get(i);
      
      out.println("<H3>Boys living in " + house.getName() + ":</H3>");

      boysInHouse.setParameter(1, new Long(house.getId()));
      List boys = boysInHouse.getResultList();

      if (boys.size() == 0)
	out.println("No boys are living in " + house.getName());

      for (int j = 0; j < boys.size(); j++) {
	Student boy = (Student) boys.get(j);

	out.println(boy.getName() + "<br>");
      }
    }
  }
}

Demo


Copyright © 1998-2015 Caucho Technology, Inc. All rights reserved. Resin ® is a registered trademark. Quercustm, and Hessiantm are trademarks of Caucho Technology.

Cloud-optimized Resin Server is a Java EE certified Java Application Server, and Web Server, and Distributed Cache Server (Memcached).
Leading companies worldwide with demand for reliability and high performance web applications including SalesForce.com, CNET, DZone and many more are powered by Resin.

home company docs 
app server