title: JPA/Hibernate persist does not appear to work
body: <p>I'm using JPA (Hibernate implementation) to save objects to the database. Selecting works fine, but for some reason, saving doesn't work. I don't get any errors, but the database doesn't get changed either. This goes for both new entities and existing ones.</p>
  
  <pre><code>    EPayment pay = new EPayment();
      pay.setAmount(payment.getAmount());
      ...
      pay.setUserByToUserId(receiver);
      CompayDAO.get().save(pay);
  </code></pre>
  
  <p>CompayDAO.save()</p>
  
  <pre><code>public void save(Object ent) {
      System.out.println("Persisting: " + ent + " using " + this);
      this.em.persist(ent);
  }
  </code></pre>
  
  <p>Console output:</p>
  
  <pre><code>Opening DOA nl.compay.entities.CompayDAO@b124fa
  Persisting: nl.compay.entities.EUser@1e2fe5d using nl.compay.entities.CompayDAO@b124fa
  Persisting: nl.compay.entities.EUser@30b601 using nl.compay.entities.CompayDAO@b124fa
  Persisting: nl.compay.entities.EPayment@ed3b53 using nl.compay.entities.CompayDAO@b124fa
  Closing DOA nl.compay.entities.CompayDAO@b124fa
  </code></pre>
  
  <p>EPayment</p>
  
  <pre><code>package nl.compay.entities;
  
  // Generated 21-mei-2009 12:27:07 by Hibernate Tools 3.2.2.GA
  
  import java.util.Date;
  import javax.persistence.Column;
  import javax.persistence.Entity;
  import javax.persistence.FetchType;
  import javax.persistence.GeneratedValue;
  import static javax.persistence.GenerationType.IDENTITY;
  import javax.persistence.Id;
  import javax.persistence.JoinColumn;
  import javax.persistence.ManyToOne;
  import javax.persistence.Table;
  import javax.persistence.Temporal;
  import javax.persistence.TemporalType;
  
  /**
   * Payment generated by hbm2java
   */
  @Entity
  @Table(name = "payment", catalog = "compay")
  public class EPayment implements java.io.Serializable {
  
      private static final long serialVersionUID = -2578493336948256566L;
  
      private Integer id;
      private EUser userByToUserId;
      private EUser userByFromUserId;
      private String description;
      private float amount;
      private String method;
      private Date paydate;
  
      public EPayment() {
      }
  
      public EPayment(EUser userByToUserId, EUser userByFromUserId, float amount,
              Date paydate) {
          this.userByToUserId = userByToUserId;
          this.userByFromUserId = userByFromUserId;
          this.amount = amount;
          this.paydate = paydate;
      }
  
      public EPayment(EUser userByToUserId, EUser userByFromUserId,
              String description, float amount, String method, Date paydate) {
          this.userByToUserId = userByToUserId;
          this.userByFromUserId = userByFromUserId;
          this.description = description;
          this.amount = amount;
          this.method = method;
          this.paydate = paydate;
      }
  
      @Id
      @GeneratedValue(strategy = IDENTITY)
      @Column(name = "id", unique = true, nullable = false)
      public Integer getId() {
          return this.id;
      }
  
      public void setId(Integer id) {
          this.id = id;
      }
  
      @ManyToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "to_user_id", nullable = false)
      public EUser getUserByToUserId() {
          return this.userByToUserId;
      }
  
      public void setUserByToUserId(EUser userByToUserId) {
          this.userByToUserId = userByToUserId;
      }
  
      @ManyToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "from_user_id", nullable = false)
      public EUser getUserByFromUserId() {
          return this.userByFromUserId;
      }
  
      public void setUserByFromUserId(EUser userByFromUserId) {
          this.userByFromUserId = userByFromUserId;
      }
  
      @Column(name = "description", length = 1024)
      public String getDescription() {
          return this.description;
      }
  
      public void setDescription(String description) {
          this.description = description;
      }
  
      @Column(name = "amount", nullable = false, precision = 8)
      public float getAmount() {
          return this.amount;
      }
  
      public void setAmount(float amount) {
          this.amount = amount;
      }
  
      @Column(name = "method", length = 50)
      public String getMethod() {
          return this.method;
      }
  
      public void setMethod(String method) {
          this.method = method;
      }
  
      @Temporal(TemporalType.TIMESTAMP)
      @Column(name = "paydate", nullable = false, length = 0)
      public Date getPaydate() {
          return this.paydate;
      }
  
      public void setPaydate(Date paydate) {
          this.paydate = paydate;
      }
  
  }
  </code></pre>