这个我的代码在我的控制器下面,即使我传递了一个有效的密钥,我总是得到null。有人告诉我为什么会发生这种情况。下面是我的存储库,控制器和域类
$ cat schrodingers_dict.py
from collections import MutableMapping
cats = []
class SchrodingersDict(MutableMapping):
def __init__(self, data):
self._store = dict(data)
def __getitem__(self, key):
if key == 'dead' or key == 'alive':
self._store[key] = cats.count(key)
return self._store[key]
def __setitem__(self, key, value):
self._store[key] = value
def __delitem__(self, key):
del self._store[key]
def __iter__(self):
return iter(self._store)
def __len__(self):
return len(self._store)
def __repr__(self):
return repr(dict(self.items()))
box = SchrodingersDict([('dead', 0), ('alive', 0)])
cats.append('dead')
cats.append('dead')
cats.append('alive')
$ python3 -i schrodinger_dict.py
>>> box
{'dead': 2, 'alive': 1}
映射:
public interface AbcRepository extends JpaRepository<ForgotPasswordToken, int> {
Abc findByHashKey(String hashKey);
Abc findByUser(User user);
}
实体:
@RequestMapping(value = "/validateKey/{hashKey}", method = RequestMethod.GET)
public ResponseEntity validateKey(@PathVariable String hashKey) {
Abc abc = AbcRepository.findByHashKey(hashKey);
if (abc == null) {
return ResponseEntity.badRequest().body("Invalid key");
}
return ResponseEntity.ok().body(abc.getUser());
}
答案 0 :(得分:1)
存储库和ABC类中有不同类型的主键。
你应该改变
JpaRepository<ForgotPasswordToken, int>
到
JpaRepository<ForgotPasswordToken, Long>
在ABC课程中使用Long id
private Long id;
建议使用对象类型作为JPA @Id而不是基元。因此,将long
更改为Long
。