2016-06-22 4 views
0

Я хотел бы связать несколько технологий сервлетов + EJB + JPA (Hibernate) + DB (PostgreSQL)Как сделать фасоль стойкой?

Я работаю Servlet и я создал Bean. Я used example, и я не вижу, где Hibernate привязан к БД и т.д. ...

@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; 
    } 
} 

Вопрос:

  1. Какие шаги я должен предпринять дальше?
  2. Где я должен привязать свой объект Book к реальной таблице DB?
  3. Откуда должно появиться EntityManager?
+0

Возьмите один из учебников Hibernate/JPA (а не только пример) и следуйте им. К этому времени он должен стать ясным. Честно говоря, ответы на ваш вопрос, вероятно, слишком долго для SO, тем более что это зависит от вашей среды (например, вы используете сервер приложений), настройки вашего приложения и т. Д. – Thomas

+0

возможно http://stackoverflow.com/questions/22772980/Борьба с понятием-сущ. – Gab

ответ

1
  1. Создать другой компонент (с CDI один или EJB без гражданства один) и ввести в EntityManager (@PersistenceContext) внутри, используйте этот принести или упорствовать свой объект в базу данных

  2. Вы уже сделали это @Table(name = "BookHibernate"...

  3. ср 1

    @Named 
    public class myBean { 
    
        @PersistenceContext 
        private EntityManager em; 
    
        public Book getBookById(Long id) { 
        return em.find(Book.class, id); 
        } 
    } 
    
Смежные вопросы