You probably miss a transaction. Use an ejb for instance (@stateless)
Le 20 déc. 2012 22:28, "avrono" <av...@neuralm.com> a écrit :

> Hi All,
>
> Newbie trying to experiment with JPA2 (openjpa - TomEE). I would appreciate
> any pointers on where I might be going wrong with the example below ....
>
> I can read data from my Persistence-unit, but cannot write data (and no
> error is generated) and I cannot see any generated SQL
>
> The only log output I get is as follows:
> =============================
>
> 25019  PRSX  TRACE  [http-bio-8080-exec-5] openjpa.jdbc.SQL - <t 25544092,
> conn 20981618> executing prepstmnt 19451103 SELECT t0.bidEndDate,
> t0.bidStartDate, t0.createdDate, t0.initialPrice, t0.name FROM item t0
> WHERE
> t0.id = ? [params=?]
> 25020  PRSX  TRACE  [http-bio-8080-exec-5] openjpa.jdbc.SQL - <t 25544092,
> conn 20981618> [1 ms] spent
> 25023  PRSX  TRACE  [http-bio-8080-exec-5] openjpa.jdbc.SQL - <t 25544092,
> conn 8418899> executing prepstmnt 30955499 SELECT t0.credit_rating,
> t0.user_id FROM bidder t0 WHERE t0.id = ? [params=?]
> 25023  PRSX  TRACE  [http-bio-8080-exec-5] openjpa.jdbc.SQL - <t 25544092,
> conn 8418899> [0 ms] spent
> In add Bid : id = 0 bidStartDate = Thu Dec 20 21:12:24 GMT 2012 Initial
> Price = 0.0 item_id = 0 item id from item is = 0 bidder_id = 1
> Trying to persist !
> 20-Dec-2012 21:12:24 org.apache.myfaces.renderkit.html.HtmlLabelRenderer
> encodeBegin
> WARNING: Attribute 'for' of label component with id j_id_3:j_id_5 is not
> defined
>
>
> My persistence.xml:
> ===============
>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence"; version="1.0">
>
> <persistence-unit name="PRSX" transaction-type="JTA" >
>     <jta-data-source>jdbc/testDB</jta-data-source>
>     <class>com.prsx.dao.item.Item</class>
>
>
>      <properties>
>             <property name="openjpa.jdbc.DBDictionary" value="mysql"/>
>             <property name="openjpa.jdbc.SynchronizeMappings"
> value="buildSchema(ForeignKeys=true)"/>
>             <property name="openjpa.Log" value="DefaultLevel=WARN,
> Runtime=INFO, Tool=INFO, SQL=TRACE"/>
>       </properties>
>   </persistence-unit>
>   </persistence>
>
>
> ManagedBean:
> =============
>
>
>
> @ManagedBean(name = "itemAdderBean")
> @RequestScoped
> //@TransactionManagement(TransactionManagementType.BEAN)
> public class ItemAdderBean {
>
>         @Resource
>     private UserTransaction userTransaction;
>
>         @PersistenceUnit(unitName="PRSX")
>         private EntityManagerFactory entityManagerFactory;
>
>         /*
>  @PersistenceContext(unitName = "PRSX", type =
> PersistenceContextType.TRANSACTION)
>   private EntityManagerFactory entityManagerFactory;
>         */
>         @PersistenceContext
>  private EntityManager entityManager;
>
>         private int id =0;
>         private Date bidDate = null;
>         private double bidPrice = 0;
>         private int item_id = 0;
>         private int bidder_id = 0;
>
>         @SuppressWarnings("unused")
>         private List<Item> list;
>         private Item item;
>
>
>
>         public ItemAdderBean() {
>                 System.out.println("Constructor of ItemAdderBean Called
> !");
>                 item = new Item();
>
>         }
>
>         @SuppressWarnings("unchecked")
>         public List<Item> getList() throws Exception {
>                 System.out.println("GetList of ItemAdderBean Called !");
>                 Query query = entityManager.createQuery("Select i from
> Item i");
>                 System.out.println("GetList of ItemAdderBean Called -
> returning !");
>                 return query.getResultList();
>         }
>
>         public Item getItem() {
>                 return item;
>         }
>
>         public void setItem(Item item) {
>                 this.item = item;
>         }
>
>         /* Getter / Setter */
>         public int getId() {
>                 return this.id;
>         }
>
>         public void setId(int id) {
>                 this.id = id;
>         }
>
>         public Date getBidDate() {
>                 return this.bidDate;
>         }
>
>         public void setBidDate(Date bidDate) {
>                 this.bidDate = bidDate;
>         }
>
>         public double getBidPrice() {
>                 return this.bidPrice;
>         }
>
>         public void setBidPrice(double bidPrice) {
>                 this.bidPrice = bidPrice;
>         }
>
>         public int getItem_id() {
>                 return this.item_id;
>         }
>
>         public void setItem_id(int item_id) {
>                 this.item_id = item_id;
>         }
>
>         public int getBidder_id() {
>                 return this.bidder_id;
>         }
>
>         public void setBidder_id(int bidder_id) {
>                 this.bidder_id = bidder_id;
>         }
>
>
>
>         public String addBid() {
>
>                 System.out.println("Add Called !");
>
>                 Bid bids = new Bid();
>                 bids.setId(this.id);
>                 bids.setBidDate(this.bidDate);
>                 bids.setBidPrice(this.bidPrice);
>
>                 Item theItem = entityManager.find(Item.class,
> this.item_id);
>                 bids.setItem(theItem);
>
>                 /* Just set bidder to 0 */
>                 Bidder theBidder = entityManager.find(Bidder.class, 1);
>                 bids.setBidder(theBidder);
>
>                 String output = "In add Bid : id = " + this.id  +
>                                 " bidStartDate = " + this.bidDate +
>                                 " Initial Price = " + this.bidPrice +
>                                 " item_id = " + this.item_id +
>                                 " item id from item is = " +
> this.item.getId() +
>                                 " bidder_id = " + this.bidder_id;
>
>                 System.out.println(output);
>
>                 //try {
>                         //userTransaction = (UserTransaction)new
> InitialContext().lookup("java:comp/UserTransaction");
>                 //} catch (NamingException e) {
>                         // TODO Auto-generated catch block
>                         //e.printStackTrace();
>                 //}
>
>                 //EntityTransaction entityTransaction =
> entityManager.getTransaction();
>
>                 /* persist the bid */
>                 //entityTransaction.begin();
>                 try {
>                         userTransaction.begin();
>                         System.out.println("Trying to persist !");
>                         entityManager.persist(bids);
>                         userTransaction.commit();
>                 } catch(Exception ex) {
>                         ex.printStackTrace();
>                 }
>                 //entityTransaction.commit();
>
>                 return "addBid";
>         }
>
>         public String reset (){
>
>             this.id=0;
>             this.bidDate = null;
>             this.bidPrice = 0;
>             this.item_id = 0;
>             this.bidder_id = 0;
>                 return "reset";
>           }
>
>         @PostConstruct
>         public void init() {
>
>                 this.entityManager =
> entityManagerFactory.createEntityManager();
>                 /* Just make the dates NOW and NOW+14 days */
>                 Calendar today = Calendar.getInstance();
>                 this.bidDate = new java.util.Date(today.getTimeInMillis());
>         }
> }
>
>
> And Entity:
> =========
> @Entity
> @Table(name="bids")
> public class Bid implements Serializable {
>         private static final long serialVersionUID = 1L;
>
>         @Id
>         @Column(name="id")
>                 @GeneratedValue(strategy = GenerationType.IDENTITY)
>         private int id;
>
>     @Temporal( TemporalType.DATE)
>         private Date bidDate;
>
>         private double bidPrice;
>
>         //bi-directional many-to-one association to Bidder
>     @ManyToOne
>         private Bidder bidder;
>
>         //bi-directional many-to-one association to Item
>     @ManyToOne
>         private Item item;
>
>     public Bid() {
>     }
>
>         public int getId() {
>                 return this.id;
>         }
>
>         public void setId(int id) {
>                 this.id = id;
>         }
>
>         public Date getBidDate() {
>                 return this.bidDate;
>         }
>
>         public void setBidDate(Date bidDate) {
>                 this.bidDate = bidDate;
>         }
>
>         public double getBidPrice() {
>                 return this.bidPrice;
>         }
>
>         public void setBidPrice(double bidPrice) {
>                 this.bidPrice = bidPrice;
>         }
>
>         public Bidder getBidder() {
>                 return this.bidder;
>         }
>
>         public void setBidder(Bidder bidder) {
>                 this.bidder = bidder;
>         }
>
>         public Item getItem() {
>                 return this.item;
>         }
>
>         public void setItem(Item item) {
>                 this.item = item;
>         }
>
> }
>
>
>
>
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Help-with-JPA-Entity-Persist-tp4659865.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>

Reply via email to