Java Crudepository findById返回空mysql
我有一个数据库,我有一个字符串作为Id。我创建了一个ItemRepository并声明了findById,条目在数据库中,但findById上为null 导入org.springframework.data.repository.crudepository; 导入org.springframework.transaction.annotation.Transactional 存储库:Java Crudepository findById返回空mysql,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我有一个数据库,我有一个字符串作为Id。我创建了一个ItemRepository并声明了findById,条目在数据库中,但findById上为null 导入org.springframework.data.repository.crudepository; 导入org.springframework.transaction.annotation.Transactional 存储库: @Transactional public interface ItemRepository extends
@Transactional
public interface ItemRepository extends CrudRepository<Item, String> {
public Item findById(String id);
}
我有一个与存储库交互的ItemService,我从ItemController实现了一个RESTAPI get
项目控制器:
@Controller
@RequestMapping(value = "/item")
public class ItemController {
@RequestMapping( value = "/{id}", method = RequestMethod.GET )
@ResponseStatus( HttpStatus.OK )
@ResponseBody
public String getItem( @PathVariable( "id" ) String id){
Preconditions.checkNotNull( id );
logger.info("1. getAAA " + id); // prints
Item a = itemService.getItem( id );
logger.info("2. getAAA " + a);
return "a : ";// + a.getName();
}
数据库中的条目“
请求获取:
curl -H "Content-Type: application/json" -X GET http://localhost:8090/item/token1495528421393
- findById上的项为空
请检查您的实体是否没有以类似的方式映射。并且您的id按照logger.info的预期打印。我想?顺便说一下@PathVariable name不应该是“assessment\u id”吗?
@PathVariable
给定的字符串“id”不应该是“assessment\u id”吗"? 看看@Zeromus很快你有一个项目对象的存储库,这与评估对象有什么关系?对不起,是项目对象,我已经更新了!删除findById
方法并使用默认的findOne
方法(假设您的id
字段用@id
注释)。
| token1495528421393 | 2017-05-23 11:33:41 | Itemnull | 0 | | 0 | 0 | 2017-05-23 11:33:41 |Item1
curl -H "Content-Type: application/json" -X GET http://localhost:8090/item/token1495528421393