findbyid()和find< classname>byid()之间有什么区别?

aiazj4mn  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(350)

在我的spring数据项目中,有一个实体如下所示:

public class Employee {

    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name="id")
    private Integer id;

    @Column(name="category")
    private Category category;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="element_id")
    private Department department;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="agency_id")
    private Agency agency;

    public Employee() {}

    // routine getters and setters
}

在我的employeerepository中,我发现我可以派生一个方法findeEmployeeById(),它的工作方式似乎与通常的findbyid()完全相同(但我不确定)。有人能解释一下这两种方法的区别吗?

Optional<Employee> findEmployeeById (Integer id);

Optional<Employee> findById (Integer id);

我“发现”这是偶然通过自动完成在我身边(intellij)。

oxalkeyp

oxalkeyp1#

不同的是 findEmployeeById() 按指定的字段搜索employee id , findById 按注解为的字段搜索 @Id 忽略实体id字段的名称。
在你的情况下-和其他许多人一样-问题是 @Id 字段恰好被命名为 id 所以结果是一样的。

相关问题