我在文档中找不到任何关于此的内容但是findOne()/ getOne()只是findById()的别名吗?
我有一个看起来像这样的实体
public class Tag {
@Id
private String name;
...
}
和这样的存储库:
@Repository
public interface TagRepository extends JpaRepository<Tag, String> {
Tag findByName(String name);
}
这段代码工作正常:
void saveTag() {
Tag tag = repository.findByName("test");
if (tag == null)
tag = new Tag("test");
tag.save();
}
saveTag();
saveTag();
但是这会爆发:
void saveTag() {
Tag tag = repository.findOne("test");
if (tag == null)
tag = new Tag("test");
tag.save();
}
saveTag();
saveTag();
此时我得到一个DuplicateKeyException,因为对findOne()的调用总是返回null,即使它存在于DB
中