TDSI – Web Services com GlassFish, JTA / JPA e JSON – parte 2

Antes leia:

TDSI – Web Services com GlassFish, JTA / JPA e JSON – parte 1

Dando sequência ao projeto tdsiWS, aonde no artigo anterior foi criado o Web Service (TdsiResource.java) vamos dentro dele utilizar JPA.

Foi adicionado ao código as variáveis factory e manager e no construtor elas foram instânciadas.

Link do código TdsiResource

package services;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PUT;

@Path("tdsi")
public class TdsiResource {

 @Context
 private UriInfo context;

 private final EntityManagerFactory factory;
 private final EntityManager manager;

 public TdsiResource() {
  factory = Persistence.createEntityManagerFactory("tdsiWSPU");
  manager = factory.createEntityManager();
 }

 @GET
 @Produces("application/json")
 public String getJson() {
 //TODO return proper representation object
 throw new UnsupportedOperationException();
 }

 @PUT
 @Consumes("application/json")
 public void putJson(String content) {
 }
}

Agora estamos aptos a utitilizar JPA (provedor Eclipse Link) com Web Services.

Dados

Agora criar um pacote chamado model e dentro dele vamos colocar duas classes a seguir:

Marca.java (já confirme os imports necessários do JPA, abaixo foram omitidos)

Note que a anotação OneToMany já está presente e será usado um modelo de dados baseado na marca de veículos e seus modelos (Exemplo: marca Ford, modelo Fiesta, modelo Focus…).

Link dos códigos das classes:

Marca.java   e  Modelo.java

package model;

import ...
import ...

@Entity
public class Marca implements Serializable {
 @Id
 private Long CodMarca;
 private String NomeMarca;

 @Temporal(TemporalType.DATE)
 private Date dtfundacao;

 public Date getDtfundacao() {
  return dtfundacao;
 }

 @OneToMany(mappedBy = "marca")
 private List<Modelo> modelos;

 public List<Modelo> getModelos() {
  return modelos;
 }

 public void setDtfundacao(Date dtfundacao) {
  this.dtfundacao = dtfundacao;
 }

 public Long getCodMarca() {
  return CodMarca;
 }

 public void setCodMarca(Long CodMarca) {
  this.CodMarca = CodMarca;
 }

 public String getNomeMarca() {
  return NomeMarca;
 }

 public void setNomeMarca(String NomeMarca) {
  this.NomeMarca = NomeMarca;
 }
}

Modelo.java (aonde vão ser guardados os modelos das marcas)

package model;

import ...

@Entity
public class Modelo implements Serializable {
 @Id
 private Long CodModelo;
 private String DescricaoModelo;

 @ManyToOne
 private Marca marca;

 public Marca getMarca() {
 return marca;
 }

 public void setMarca(Marca marca) {
 this.marca = marca;
 }

 public Long getCodModelo() {
 return CodModelo;
 }

 public void setCodModelo(Long CodModelo) {
 this.CodModelo = CodModelo;
 }

 public String getDescricaoModelo() {
 return DescricaoModelo;
 }

 public void setDescricaoModelo(String DescricaoModelo) {
 this.DescricaoModelo = DescricaoModelo;
 }
}

Links:

TdsiResource.java

Marca.java   e  Modelo.java

Clique aqui para o próximo: Parte 3

Esse post foi publicado em Web Services Java Rest. Bookmark o link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s