More Related Content
Similar to 【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜 (20)
More from Toshio Ehara (20)
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
- 7. 今日の内容
ねこび〜ん by カネウチカズコ http://ja.netbeans.org/nekobean
OS: Mac OSX 10.7.5
IDE:NetBeans 7.3.1
Java: 1.7.0_25
データベース:MySQL
ブラウザ:chrome
以下環境です。
13年9月1日日曜日
- 20. package findjob.domain.model;
・・・ import 省略・・・
@Entity
@Table(name = "jobs")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Job.findAll", query = "SELECT j FROM Job j"),
@NamedQuery(name = "Job.findById", query = "SELECT j FROM Job j WHERE j.id = :id"),
@NamedQuery(name = "Job.findByName", query = "SELECT j FROM Job j WHERE j.name = :name")})
public class Job implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 128)
@Column(name = "name")
private String name;
public Job() {}
public Job(Integer id) { this.id = id; }
public Job(Integer id, String name) { this.id = id; this.name = name; }
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id;}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
・・・ import 省略・・・
}
自動でJob.java生成
JPQL (Java Persistence Query Langauage)
13年9月1日日曜日
- 24. 仕事一覧をListで返す処理を追加
package
findjob.domain.service;
import
javax.ejb.Stateless;
import
javax.persistence.EntityManager;
import
javax.persistence.PersistenceContext;
import
java.util.List;
import
javax.persistence.TypedQuery;
import
findjob.domain.model.Job;
@Stateless
public
class
HelloWorkService
{
@PersistenceContext
protected
EntityManager
entityManager;
public
List<Job>
findAll(){
TypedQuery<Job>
q=
entityManager.createNamedQuery(
"Job.findAll",
Job.class);
return
q.getResultList();
}
}
Job.java(JPAエンティティ)を
操作するEntityManager
全件取得!
13年9月1日日曜日
- 28. package findjob.app;
import findjob.domain.model.Job;
import findjob.domain.service.HelloWorkService;
import java.util.List;
import javax.ejb.EJB;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("hellowork/jobs")
public class HelloWorkResouce {
@EJB
protected HelloWorkService hellowWorkService;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Job> getJobs(){
return hellowWorkService.findAll();
}
}
URLのパス
使用するEJBを追加
GETでJSON形式で取得
13年9月1日日曜日
- 29. package findjob.app;
import findjob.domain.model.Job;
import findjob.domain.service.HelloWorkService;
import java.util.List;
import javax.ejb.EJB;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("hellowork/jobs")
public class HelloWorkResouce {
@EJB
protected HelloWorkService hellowWorkService;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Job> getJobs(){
return hellowWorkService.findAll();
}
}
左の黄色のランプを選択し「JavaEE6仕様を使用して
RESTを構成します」を選択
13年9月1日日曜日