Spring Boot 创建实体

2017-10-11  本文已影响327人  星期六1111

问题描述

数据库中已经存在了表,现在需要读取表中的数据,用Spring Boot 中Spring-data-jpa的方式,我创建了实体,但报了错误org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigu

矛盾点

根据错误提示判断出应该是创建实体的某个关键注解使用不当,但一时找不出是哪个注解

问题解决

Q1:由于配置了hibernate.hbm2ddl.auto,在应用启动的时候框架会自动去数据库中找到(无则创建)对应的表,想想创建一个实体时常用的注解和作用
A1:

Q2:我的数据库表中主键是什么?看下创建表的时候的SQL语句,userId是主键,所以我的问题就是忘了这个注解。为什么缺少主键会报这个错误?
A2:个人的理解是这样,jpa 有很多原生的api,如findOne(),需要传入的参数就是主键id,所以当缺少这个直接的时候,框架就找不到主键是哪个,代码中使用了这个api也就有问题了。。。。加上后就ok 了

反思

为什么刚开始的时候,没有一眼发现这个问题,是因为之前的写的代码中主键都是id表示,这次换成了userId的时候一时没反应过来它就是主键,说明对@id这个主键的理解不深刻,对之前自己写的代码也没有完全理解透彻。

action

上一篇下一篇

猜你喜欢

热点阅读