0

例如,这些类:

public class Boss{
    ... 
    @OneToMany(mappedBy="boss")
    Set<Employee> employees;
}

public class Employee{
    @ManyToOne
    Boss boss;
    ...
}

老板和员工之间是有关系的。我可以通过 boss.getEmployees() 找到老板的所有员工。

SDFDK 做什么来了解关系的要素?从老板那里保存所有员工的ID?

我想知道 boss.getEmployees() 和带有“SELECT e FROM Employee e where e.id='boss_id'”的查询之间的性能差异

谢谢。

4

1 回答 1

2

我想知道 boss.getEmployees() 和带有“SELECT e FROM Employee e where e.id='boss_id'”的查询之间的性能差异

性能上的差异是肯定的,但工作方式相同。JPAJDBC当然慢。JDBC也低于JPA. 我告诉你这个。使用ORM有一个主要优点,您将节省大量时间来实现自己的ORM,但您对查询的控制不如实现自己的ORM. 你对方法的内部实现和JPA.

当您实现自己的ORM查询时,您可以更好地控制查询,您可以根据应用程序需求优化查询,但这需要一些时间。JPAORM实现所有必需的数据库逻辑的框架,而不是你。你只需要通过注释告诉他你想要什么。

框架的下一个优点ORM是您的应用程序将独立于数据库层(数据源的类型),但您也可以通过实施适当的设计模式(如 等)来实现这AbstractDAOFactory一点AbstractDataMapper

于 2013-03-23T21:06:07.663 回答