actually, it seems something is being inserted somewhere

TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
1249135181, conn 1798001212> executing prepstmnt 1563539472 INSERT INTO
PUBLIC.books (ID, NAME) VALUES (?, ?) [params=?, ?]


isn't something related to the autocommit?


[]

Leo

On Fri, Jul 17, 2015 at 11:28 AM, coco <[email protected]> wrote:

> I m in the beginning with Java EJB. :) I have Dynamic web project in
> eclipce
> and i want to save object to mysql database. Dont understand why it is not
> working since i do not have exceptions in my console.
> I m using Apache Tomee server wich i had installed in eclipse.
>
> My Entity class:
>
>     package entities;
>     import static javax.persistence.GenerationType.IDENTITY;
>     import java.io.Serializable;
>     import java.io.Serializable;
>     import javax.persistence.Column;
>     import javax.persistence.Entity;
>     import javax.persistence.EntityListeners;
>     import javax.persistence.GeneratedValue;
>     import javax.persistence.GenerationType;
>     import javax.persistence.Id;
>     import javax.persistence.NamedQueries;
>     import javax.persistence.NamedQuery;
>     import javax.persistence.Table;
>
>     @Entity
>     @Table(name="books")
>     public class Book implements Serializable{
>
>         private static final long serialVersionUID = -9009670426767476684L;
>
>         @Id
>         @GeneratedValue
>     private int id;
>
>     @Column(name="name")
>         private String name;
>
>     public Book(){
>     }
>
>     public Book(String name) {
>                 super();
>                 this.name = name;
>         }
>
>
>     public int getId() {
>       return id;
>     }
>
>     public void setId(int id) {
>       this.id = id;
>     }
>
>     public String getName() {
>       return name;
>     }
>
>     public void setName(String name) {
>       this.name = name;
>     }
>     }
>
> GenericDaoBean:
>
>     package beans;
>     import java.io.Serializable;
>     import java.lang.reflect.ParameterizedType;
>     import java.util.List;
>     import javax.persistence.EntityManager;
>     import javax.persistence.PersistenceContext;
>     import javax.persistence.Query;
>
>     public abstract class GenericDaoBean<T, ID extends Serializable>
> implements GenericDaoLocal<T, ID> {
>
>         private Class<T> entityType;
>
>         @PersistenceContext(unitName = "facebook")
>         protected EntityManager em;
>
>         @SuppressWarnings("unchecked")
>         public GenericDaoBean() {
>                 entityType = (Class<T>) ((ParameterizedType) getClass()
>
> .getGenericSuperclass()).getActualTypeArguments()[0];
>         }
>
>         public Class<T> getEntityType() {
>                 return entityType;
>         }
>
>         public T findById(ID id) {
>                 T entity;
>                 entity = em.find(entityType, id);
>                 return entity;
>         }
>
>         @SuppressWarnings("unchecked")
>         public List<T> findAll() {
>                 Query q = em.createQuery("SELECT x FROM " +
> entityType.getSimpleName()
>                                 + " x");
>                 List<T> result = q.getResultList();
>                 return result;
>         }
>
>         @SuppressWarnings("unchecked")
>         public List<T> findBy(String query) {
>                 Query q = em.createQuery(query);
>                 List<T> result = q.getResultList();
>                 return result;
>         }
>
>         public T persist(T entity) {
>                 em.persist(entity);
>                 return entity;
>         }
>
>         public T merge(T entity) {
>                 entity = em.merge(entity);
>                 return entity;
>         }
>
>         public void remove(T entity) {
>                 entity = em.merge(entity);
>                 em.remove(entity);
>         }
>
>         public void flush() {
>                 em.flush();
>         }
>
>         public void clear() {
>                 em.clear();
>         }
>
>     }
>
> GenericDaoBeanLocal:
>
>     package beans;
>
>     import java.io.Serializable;
>     import java.util.List;
>
>     public interface GenericDaoLocal<T, ID extends Serializable> {
>
>         public Class<T> getEntityType();
>
>         public T findById(ID id);
>
>         public List<T> findAll();
>
>         public List<T> findBy(String query);
>
>         public T persist(T entity);
>
>         public T merge(T entity);
>
>         public void remove(T entity);
>
>         public void flush();
>
>         public void clear();
>
>     }
>
> Conroller:
>
>     package controllers;
>
>     import java.io.IOException;
>     import java.util.Calendar;
>     import javax.ejb.EJB;
>     import javax.persistence.EntityManager;
>     import javax.persistence.PersistenceContext;
>     import javax.servlet.ServletException;
>     import javax.servlet.http.HttpServlet;
>     import javax.servlet.http.HttpServletRequest;
>     import javax.servlet.http.HttpServletResponse;
>     import beans.BookDaoLocal;
>     import entities.Book;
>
>     public class RegistrationController extends HttpServlet {
>         private static final long serialVersionUID = 381026218072249234L;
>
>         @EJB
>         private BookDaoLocal bookDao;
>
>     @Override
>         protected void doGet(HttpServletRequest req, HttpServletResponse
> resp)
> throws ServletException, IOException {
>
>         }
>
>         @Override
>         protected void doPost(HttpServletRequest req, HttpServletResponse
> resp)
> throws ServletException, IOException {
>
>                 String name = req.getParameter("name");
>         Book b = new Book();
>             b.setName(name);
>                 bookDao.persist(b);
>
>         }
>     }
>
>
> In WebContent under META_INF folder I have persistance.xml and file:
>
> Persistence.xml:
>
>     <?xml version="1.0" encoding="UTF-8"?>
>     <persistence version="1.0"
> xmlns="http://java.sun.com/xml/ns/persistence";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
> http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd";>
>
>
>     <persistence-unit name="facebook" transaction-type="JTA">
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>     <jta-data-source>facebook</jta-data-source>
>     <class>entities.Book</class>
>
>     <properties>
>             <property name="openjpa.Log" value="DefaultLevel=WARN,
> Runtime=INFO, Tool=INFO, SQL=TRACE"/>
>
>             <property name="openjpa.jdbc.SynchronizeMappings"
> value="buildSchema(ForeignKeys=true)"/>
>             <property name="openjpa.jdbc.SchemaFactory"
> value="native(ForeignKeys=true)" />
>
>             <property name="openjpa.jdbc.EagerFetchMode" value="join"/>
>
>     </properties>
>   </persistence-unit>
> </persistence>
>
> In my src I have jndi.properties file:
>
>
>
> java.naming.factory.initial=org.apache.openejb.client.RemoteInitialContextFactory
>     java.naming.provider.url=http://127.0.0.1:8080/tomee/ejb
>
> In my console I have:
>
>     INFO: Server startup in 4161 ms
>     10092  facebook  INFO   [http-bio-8080-exec-7] openjpa.Runtime -
> Starting OpenJPA 2.4.0-nonfinal-1598334
>     11626  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 2120544240> executing prepstmnt 598104600 SELECT
> SEQUENCE_SCHEMA, SEQUENCE_NAME FROM INFORMATION_SCHEMA.SYSTEM_SEQUENCES
>     11626  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 2120544240> [0 ms] spent
>     11645  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 2120544240> executing prepstmnt 726242714 SELECT
> SEQUENCE_SCHEMA, SEQUENCE_NAME FROM INFORMATION_SCHEMA.SYSTEM_SEQUENCES
>     11646  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 2120544240> [1 ms] spent
>     11794  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 811560660> executing prepstmnt 1999826151 SELECT
> SEQUENCE_VALUE FROM PUBLIC.OPENJPA_SEQUENCE_TABLE WHERE ID = ? [params=?]
>     11794  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 811560660> [0 ms] spent
>     11795  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 811560660> executing prepstmnt 344473922 UPDATE
> PUBLIC.OPENJPA_SEQUENCE_TABLE SET SEQUENCE_VALUE = ? WHERE ID = ? AND
> SEQUENCE_VALUE = ? [params=?, ?, ?]
>     11797  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 811560660> [2 ms] spent
>     11813  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 1798001212> executing prepstmnt 1563539472 INSERT INTO
> PUBLIC.books (ID, NAME) VALUES (?, ?) [params=?, ?]
>     11814  facebook  TRACE  [http-bio-8080-exec-7] openjpa.jdbc.SQL - <t
> 1249135181, conn 1798001212> [1 ms] spent
>
>
> And in tomee.xml (datasource for tomee):
>
>     <Resource id="facebook" type="DataSource">
>           JdbcDriver com.mysql.jdbc.Driver
>           JdbcUrl jdbc:mysql://127.0.0.1:3306/facebook?autoReconnect=true
>           UserName root
>           Password root
>           JtaManaged true
>         </Resource>
>
> What sould I add or remove to make code from controller work? (persist
> object in my database)
>
> 2)Second situation i have with this is:
> Since nothing is persist in database it is very strange for me when i try
> to
> query records from the same table in which i tried to persist, as a result
> i
> got the list of all names that i have tried to save in table. (All the
> names
> I tried to save in dbase, which are not in dbase are listed now in my jsp)
> My test.jsp is:
>
>     <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> pageEncoding="ISO-8859-1"%>
>     <%@ taglib uri="http://java.sun.com/jsp/jstl/sql"; prefix="sql" %>
>     <%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c" %>
>     <!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01
> Transitional//EN&quot;
> &quot;http://www.w3.org/TR/html4/loose.dtd&quot;>
>
>     <sql:query var="rs" dataSource="jdbc/facebook">
>         select name from books
>     </sql:query>
>
>     <html>
>       <head>
>         <title>DB Test</title>
>       </head>
>       <body>
>
>
> Results
>
>
>      <c:forEach var="row" items="${rs.rows}">
>         Name ${row.name}<br/>
>      </c:forEach>
>
>        </body>
>     </html>
>
> This means than datasource contain these data? Why is this happening? How
> to
> make my data be saved to database? Any help...
> I m new to this and all help will be precious :)
>
>
>
> --
> View this message in context:
> http://tomee-openejb.979440.n4.nabble.com/How-to-persist-object-using-Entity-Manager-and-GenericDao-Bean-and-Tomee-tp4675519.html
> Sent from the TomEE Users mailing list archive at Nabble.com.
>

Reply via email to