Package relationships

Source Code of relationships.JPARelationshipsServlet

package relationships;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.SimpleTimeZone;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import javax.servlet.http.*;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;
import com.google.appengine.api.datastore.KeyFactory.Builder;

import relationships.Book;
import relationships.BookReview;
import relationships.EMF;

@SuppressWarnings("serial")
public class JPARelationshipsServlet extends HttpServlet {
    public void doGet(HttpServletRequest req,
                      HttpServletResponse resp)
        throws IOException {
        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();

        EntityManagerFactory emf = EMF.get();
        EntityManager em = null;

        try {
            em = emf.createEntityManager();

            Book book = new Book("978-0141185064");
            book.setTitle("The Grapes of Wrath");
            book.setAuthor("John Steinbeck");
            book.setCopyrightYear(1939);
            Date authorBirthdate =
                new GregorianCalendar(1902, Calendar.FEBRUARY, 27).getTime();
            book.setAuthorBirthdate(authorBirthdate);

            book.setBookCoverImage(new BookCoverImage());
            book.getBookCoverImage().setType("image/jpg");

            List<BookReview> bookReviews = book.getBookReviews();
            BookReview bookReview = new BookReview();
            bookReview.setRating(5);
            bookReviews.add(bookReview);
            bookReview = new BookReview();
            bookReview.setRating(4);
            bookReviews.add(bookReview);

            EntityTransaction txn = em.getTransaction();
            txn.begin();
            try {
                // When the Book is made persistent, the "PERSIST"
                // action cascades to the BookCoverImage object and
                // all BookReview objects.
                em.persist(book);
                txn.commit();
            } finally {
                if (txn.isActive()) {
                    txn.rollback();
                }
            }

        } finally {
            em.close();
        }

        try {
            em = emf.createEntityManager();

            Book book = em.find(Book.class, "978-0141185064");
            if (book != null) {
                out.println("<p>Found <i>" + book.getTitle() + "</i></p>");

                // Automatically fetch the BookCoverImage entity and access a field.
                out.println("<p>Book cover image type: " + book.getBookCoverImage().getType() + "</p>");

                out.println("<p>Ratings: ");
                for (BookReview bookReview : book.getBookReviews()) {
                    out.println("[" + bookReview.getRating() + "] ");
                }
                out.println("</p>");

            } else {
                out.println("Could not find that book I was looking for...");
            }

        } finally {
            em.close();
        }

        out.println("<p>Objects saved.  See <a href=\"/_ah/admin\">the datastore viewer</a>.</p>");

        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSS");
        fmt.setTimeZone(new SimpleTimeZone(0, ""));
        out.println("<p>The time is: " + fmt.format(new Date()) + "</p>");
    }
}
TOP

Related Classes of relationships.JPARelationshipsServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.