例如,这些类:
public class Boss{
...
@OneToMany(mappedBy="boss")
Set<Employee> employees;
}
public class Employee{
@ManyToOne
Boss boss;
...
}
Boss和Employee之间存在关系。我可以找到Boss的所有员工,做boss.getEmployees()。
SDFDK如何知道关系的元素?从老板那里保存所有员工的身份?
我想知道boss.getEmployees()与“SELECT e FROM Employee e where e.id ='boss_id'”
之间的性能差异感谢。
答案 0 :(得分:2)
我想知道两者之间的性能差异 boss.getEmployees(),以及一个带有“SELECT e FROM Employee e where”的查询 e.id ='boss_id'“
差异在性能上是肯定的,但效果相同。当然,JPA
比JDBC
慢。 JDBC
也低于JPA
。我告诉你这个。使用ORM
有一个主要优势,您可以节省大量时间来实现自己的ORM
,但是如果您实现自己的ORM
,则没有那么多的查询控制权。 {1}}。您对方法的内部实现和JPA
的其他内容一无所知。
当您实现自己的ORM
时,您可以更好地控制查询,您可以根据应用程序要求优化查询,但这需要一些时间。 JPA
是ORM
框架,它实现了所有必需的数据库逻辑。你只需要通过注释告诉他你想要什么。
ORM
框架的下一个优点是您的应用程序将独立于数据库层(数据源类型),但您也可以通过实现适当的设计模式来实现这一点,例如AbstractDAOFactory
,{{1}等等。