간단한 Eclipse 동적 웹 프로젝트를 만들어 JSP를 사용하려고합니다.unitName null EntityManagerFactory를 검색 할 수 없습니다.
기본 JSP와 HttpServlet에 매개 변수화 된 요청을 생성하는 양식을 만들었습니다. 이 서블릿은 엔티티 bean을 사용하여 데이터를 데이터베이스에 저장합니다.
주석을 통해 매핑을 사용했습니다.
이
내 JSP의 호출 일부입니다 - 마지막으로 -이 내 아주 간단한 서블릿이@Entity
@Table(name="CUSTOMERS")
public class CustomerBean implements Serializable {
@Id
@Column(name = "CUSTOMER_ID")
private Long id;
@Column(name = "FIRST_NAME")
private String firstname;
@Column(name = "LAST_NAME")
private String lastname;
public CustomerBean() {
this.firstname = "";
this.lastname = "";
}
// Getters & Setters
지금 :
<form action="persistencedemo" method="get">
<input type="submit" name="submit" value='ok'/>
<input type="hidden" name="firstName" value='<jsp:getProperty property="firstname" name="newCustomer"/>' />
<input type="hidden" name="lastName" value='<jsp:getProperty property="lastname" name="newCustomer"/>' />
</form>
...이 내 빈의 메인 섹션입니다 :
@WebServlet(name="PersistenceDemo", urlPatterns = {"/persistencedemo"})
public class PersistenceDemo extends HttpServlet {
private static final long serialVersionUID = 1L;
@PersistenceUnit
private EntityManagerFactory entityManagerFactory;
@Resource
private UserTransaction userTransaction;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
EntityManager em = entityManagerFactory.createEntityManager();
CustomerBean c1 = new CustomerBean();
CustomerBean c2 = new CustomerBean();
c1.setFirstname("My");
c1.setLastname("Self");
c1.setId(3L);
c2.setId(4L);
c2.setFirstname(req.getParameter("firstName"));
c2.setLastname(req.getParameter("lastName"));
try {
userTransaction.begin();
em.persist(c1);
em.persist(c2);
userTransaction.commit();
}
catch (Exception e) {
e.printStackTrace();
}
resp.getWriter().print("Updated database!");
}
}
[업데이트] 내 persistence.xml을
01 23,516,<?xml version="1.0" encoding="UTF-8" ?>
<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_2_0.xsd"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="hello-world" transaction-type="RESOURCE_LOCAL">
<class>com.jpa.PersistenceDemo</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/customerdb" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="customeruser" />
<property name="javax.persistence.jdbc.password" value="customerpass" />
</properties>
</persistence-unit>
</persistence>
문제는 :
Unable to retrieve EntityManagerFactory for unitName null
: 나는 오류 메시지와 함께 충돌 나는 entityManagerFactory.createEntityManager을 (호출하고 모든 시간)를 MySQL의 커넥터를 연결하고 테이블을 생성하지만, 글쎄, 모델 (bean)을 뷰 (jsp)에서 분리하기 위해 다른 구조를 사용해야한다는 사실 외에도 :
여기서 어떤 문제가 발생합니까?
은 entityManagerFactory가 초기화 되었습니까? –
persistence.xml 파일을 질문에 포함하십시오. – Perception
persistence.xml의 내용을 게시하고 @PersistenceUnit의 단위 이름을 지정해야한다고 생각합니다. – OQJF