如何在CrudRepository中使用两个T findOne(ID id)?

时间:2015-12-29 02:57:16

标签: repository persistence spring-data-jpa

我有一个有两个id的实体,如下所示:

public class Myset {
    private Long id
    private String secernId;
}
我定义了界面以便我可以使用findOne(Long id),但我也想使用findOne(String secernId),我该怎么办?这有可能吗?

public interface MyRepository extends CrudRepository<Myset, Long> {
}

1 个答案:

答案 0 :(得分:0)

CrudRepository将findOne方法定义为:

T findOne(ID primaryKey);

您已将Long指定为扩展CrudRepository的第二个generig参数,这意味着扩展的findOne实际上就像

Myset findOne(Long primaryKey);

所以你不会从中获得findOne(String secernId)。

您可以在界面中定义一个新方法,如:

public Myset findBySecernId(String secernId);

或者,如果您真的希望将您的方法命名为findOne,则可以通过自定义存储库实现来实现它。但老实说,我认为这只是这个简单操作的开销。