たとえば、休止状態では、関係のある2つのオブジェクトがあります。オブジェクトはこんな感じ
最初のオブジェクト:顧客
@Entity
@Table(name = "customer", catalog = "test")
public class Customer implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Set<CustomerController> customerControllers = new HashSet<CustomerController>(0);
public Customer() {
}
//getter & setter
}
2番目のオブジェクト:CustomerController
@Entity
@Table(name = "customer_controller", catalog = "test")
public class CustomerController implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private Customer customer;
//constructor, getter & setter
}
特定の顧客のcustomer_controllerを選択したい。私は2つの方法でそれを取得します。最初の方法:
@Override
public List<CustomerController> customerController(int customerId){
Customer customer = (Customer) sessionFactory.getCurrentSession().get(Customer.class, customerId);
return customer.getCustomerControllers()
}
2番目の方法:
return (List<CustomerController>)sessionFactory.getCurrentSession().createQuery("SELECT O FROM CustomerController O WHERE O.customerId=:CONDITION")
.setParameter("CONDITION", customerId)
.list();
最も効率的な方法はどれですか?なんで?ありがとうございました。