使用Java Persistence检索所有主键

时间:2015-03-02 10:15:36

标签: java jpa persistence jpa-2.0 entitymanager

我有一个函数“checkPatientId”,它将参数作为“patient_id”,如果patient_id存在于表“patient_personal_details”中则返回“Valid”,如果不存在,则返回“Invalid”。

public String checkPatientID(int patient_id) throws RemoteException{
    String result = "Valid";
    try{
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/hospital_database","root","");
        String sql = "SELECT patient_id FROM patient_personal_details";
        Statement s = con.createStatement();
        s.execute(sql);
        ResultSet rs = s.getResultSet();

        if(rs!=null){
            while(rs.next()){
                int num = rs.getInt(1);
                if(num == patient_id){
                    result = "Invalid";
                }
            }
        }
    }
    catch(SQLException e){
        System.out.println("Error: "+e);
    }
    catch(ClassNotFoundException e){
        System.out.println("Error: "+e);
    }
    return result;
}

我想知道如何使用Java Persistence而不是SQL来检索和检查patient_id。我已经生成了我的实体类和持久性单元,并且还建立了我的数据库连接。 P.S我正在使用Netbeans 8.0.2 Enterprise。

2 个答案:

答案 0 :(得分:1)

可以使用EntintyManager find()的{​​{1}}方法唯一标识和检索实体对象。请尝试为:em其中1是主键。如果在数据库中找不到对象,则返回null。

答案 1 :(得分:0)

可以使用

唯一标识和检索实体对象
T getReference method of EntintyManager em 

尝试为:

Patient patient= em.getReference(Patient.class, 1); 

其中1是主键。如果在数据库中找不到对象,则返回null