JPAを使用して、データベースからいくつかのエンティティークラスを作成しました。
これらはクラスです:
- フライト
- 乗客
- PassengersFlights(乗客とフライトの主キーを含む)
- ユーザー
データベースでは、PassengersFlightsテーブルに2つの外部キーがあります。1つはFlights用で、もう1つはPassengers用です。
私が抱えている唯一の問題は、乗客とフライトの主キーが、PassengersFlightsエンティティクラスのデータ型PassengersとFlightsであるということです。ただし、それぞれのエンティティクラスでのこれらのデータ型は、データベースで定義されているように、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");
}
私が抱えている問題は、パスポート番号とフライトIDを設定するときです。プロジェクトでは、それらはstringおよびintとして定義されています。ただし、PassengerとFlightsのデータ型が必要です。どうすればこの問題を解決できますか?