Rudziankoŭ
Rudziankoŭ

Reputation: 11251

How to make bean persistent?

I would like to bundle several technologies Servlet + EJB + JPA(Hibernate) + DB(PostgreSQL)

I have working Servlet and I created Bean. I used example and I don't see where Hibernate tied to DB etc ...

@Entity
@XmlRootElement
@Table(name = "BookHibernate", uniqueConstraints = @UniqueConstraint(columnNames = "id"))
public class Book implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Question:

  1. Which steps I should take next?
  2. Where should I tie my Book entity to real DB table?
  3. Where should EntityManager appear?

Upvotes: 0

Views: 59

Answers (1)

Gab
Gab

Reputation: 8323

  1. Create an other bean (a CDI one or an EJB stateless one) and inject an entityManager (@persistenceContext) inside, use this one to fetch or persist your entity to the database

  2. You already did it @Table(name = "BookHibernate"...

  3. cf 1

    @Named
    public class myBean {
    
      @PersistenceContext
      private EntityManager em;
    
      public Book getBookById(Long id) {
       return em.find(Book.class, id);
      }
    }
    

Upvotes: 1

Related Questions