Я пытаюсь узнать JPA Вот мой файл сущности. Passenger.javaJPA подключение к неправильной таблице
@Entity
public class Passenger implements Serializable{
public Passenger() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String firstName;
private String lastName;
}
Мой persistence.xml ниже.
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="JPA_POJO">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:/airlines</jta-data-source>
<class>com.airline.model.Passenger</class>
</persistence-unit>
Мой сервлет, как это.
@WebServlet(name = "addPassenger")
public class addPassenger extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Passenger p = new Passenger();
// airline p = new airline();
p.setFirstName("ABC");
p.setLastName("XYZ");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPA_POJO");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(p);
em.getTransaction().commit();
}
}
Когда я запускаю этот код я получаю следующее сообщение об ошибке.
org.eclipse.persistence.exceptions.DatabaseException Внутренняя Исключение: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Таблица 'airline.passenger' не существует код ошибки: 1146 вызова: INSERT INTO ПАССАЖИРА (ID, FIRSTNAME, LASTNAME) VALUES (?,?,?)
насколько я понимаю, он пытается подключиться к легковым столу вместо AIRLINE таблицы. Я назначил источник данных, указывающий на таблицу авиакомпаний. На самом деле я написал файл класса airport.java в основном так же, как и Passenger.java, когда я использовал объект авиакомпании.java (закомментированный в коде) в моем сервлете, он работал. Что я делаю неправильно?
Я обновил XML Теперь он дает следующее сообщение об ошибке. Исключение из потока «main» javax.persistence.PersistenceException: Exception [EclipseLink-4021] (Eclipse Persistence Services - 2.6.3.v20160428-59c81c5): org.eclipse.persistence.exceptions.DatabaseException Исключение Описание: Не удается получить соединение с драйвером [null], пользователь [null] и URL [null]. Убедитесь, что вы задали ожидаемый класс и URL-адрес драйвера. Проверьте свой ресурс login, persistence.xml или sessions.xml. Свойство jdbc.driver должно быть настроено на класс, совместимый с вашей платформой базы данных. – AhmedRana
Есть ли способ заставить Passenger.java писать в таблицу авиакомпаний? – AhmedRana
Добавить @Table (name = "AIRLINE") после @Entity –