package xxxxxxxxxx;
import au.com.mobicast.jaxrs.model.Contact;
import au.com.mobicast.jaxrs.model.RSMessage;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Stateless
@Path("/contacts")
public class ContactFacadeREST extends AbstractFacade<Contact> {
@PersistenceContext(unitName = "xxxxPU")
private EntityManager em;
public ContactFacadeREST() {
super(Contact.class);
}
@POST
@Override
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response create(Contact entity) {
super.create(entity);
return Response
.ok()
.entity(entity)
.build();
}
@PUT
@Path("{id}")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public void edit(@PathParam("id") Long id, Contact entity) {
super.edit(entity);
}
@DELETE
@Path("{id}")
public void remove(@PathParam("id") Long id) {
super.remove(super.find(id));
}
@GET
@Path("{id}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Contact find(@PathParam("id") Long id) {
return super.find(id);
}
@GET
@Override
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<Contact> findAll() {
return super.findAll();
}
@GET
@Path("{from}/{to}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<Contact> findByName(@PathParam("query") String query) {
return super.findByName(query);
}
@GET
@Path("count")
@Produces(MediaType.TEXT_PLAIN)
public String countREST() {
return String.valueOf(super.count());
}
@Override
protected EntityManager getEntityManager() {
return em;
}
}
Database SQL
--------------------------------
create table `naxxx_projects`.CONTACT
(
ID BIGINT NOT NULL AUTO_INCREMENT primary key,
CONTACT_TYPE VARCHAR(15),
CONTACT_NAME VARCHAR(150),
CONTACT_TITLE VARCHAR(150),
CONTACT_MESG VARCHAR(255),
HOUSE_NUM VARCHAR(15),
APT_NUM VARCHAR(15),
ADDRESS_LINE1 VARCHAR(145),
ADDRESS_LINE2 VARCHAR(145),
ADDRESS_LINE3 VARCHAR(145),
COUNTRY_ID BIGINT,
COUNTRY_NAME VARCHAR(150),
STATES_ID BIGINT,
STATES_NAME VARCHAR(150),
CITY_ID BIGINT,
CITY_NAME VARCHAR(150),
PHONE_TYPE VARCHAR(15),
PHONE_COUNTRY_CODE VARCHAR(45),
PHONE_STATE_CODE VARCHAR(45),
PHONE_NUMBER VARCHAR(45),
MOBILE_NUMBER VARCHAR(45),
PHONE_EXT_NUMBER VARCHAR(45),
EMAIL VARCHAR(150),
EMAIL_TYPE VARCHAR(50),
WEBSITE VARCHAR(150),
TWITTER VARCHAR(45),
NOTE VARCHAR(255)
)