我使用JPA从数据库创建了一些实体类。Java - 持久性和实体类
这些是类:
- 航班
- 乘客
- PassengersFlights(含有乘客和航班的主键)
- 用户
在数据库中,有两个PassengersFlights表中的外键 - 一个用于航班,一个用于乘客。
我唯一的问题是乘客和航班的主键是PassengersFlights实体类中的数据类型乘客和航班。但是,它们各自实体类中的数据类型是数据库中定义的String和int。
我有以下代码更新PassengersFlights表:
// Updating the Passengers_Flights table
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/flights_db", "root", "hello");
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("Flights_AssignmentPU");
EntityManager em = emFactory.createEntityManager();
PassengersFlights booking = new PassengersFlights();
booking.setPassportNum(passport);
booking.setFlightId(flight_id);
em.getTransaction().begin();
em.persist(booking);
em.getTransaction().commit();
em.close();
}
catch (Exception e)
{
response.sendRedirect("ErrorPage.html");
}
我遇到的问题是设置护照号码,航班号时。在项目中,它们被定义为字符串和整型。但是,它期望Passenger和Flights数据类型。我该如何解决这个问题?
乘客是否有两列(乘客和航班)飞行表,您不应该为PassengersFlights设计额外的班级。在航班和乘客之间使用n-m关系。 –