Hi Maybe check your logs to ensure you use the datasource you expect. You can also check connecting through JMX to tomee in openejb MBeans.
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> 2015-07-17 8:12 GMT-07:00 Leonardo K. Shikida <[email protected]>: > 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 "-//W3C//DTD HTML 4.01 > > Transitional//EN" > > "http://www.w3.org/TR/html4/loose.dtd"> > > > > <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. > > >
