如何解决JPA配置文件在REST应用中返回空列表
我正在尝试制作智能REST应用程序,该应用程序使用配置文件(JDBC,JPA)。 JDBC方法可以正常工作,但是JPA findAll()方法返回空列表。
对象类:
@Data
@Entity
@Table(name = "cars",schema = "carmanager")
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "brand")
private String brand;
@Column(name = "model")
private String model;
@Column(name = "maxSpeed")
private Integer maxSpeed;
}
JDBC存储库:
@Repository
@Profile("jdbc")
public class JdbcCarRepository implements CarRepository {
private final JdbcTemplate jdbcTemplate;
public JdbcCarRepository(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public List<Car> findAll() {
return jdbcTemplate.query("select * from carmanager.cars",new CarRowMapper());
}
....
}
JPA存储库:
@Repository
@Profile("jpa")
public interface JpaCarRepository extends JpaRepository<Car,Long>,CarRepository {}
2个配置文件的共享存储库:
@Component
public interface CarRepository {
List<Car> findAll();
....
}
控制器:
@RestController
public class CarController {
private final CarRepository carRepository;
@Autowired
public CarController(CarRepository carRepository) {
this.carRepository = carRepository;
}
@GetMapping("/car")
public List<Car> findAll(){
return carRepository.findAll();
}
....
}
Application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/spring-project?useUnicode=true&serverTimezone=UTC
spring.datasource.username=user
spring.datasource.password=pass
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.profiles.active=jdbc/jpa
我的数据库:
如何使Jpa方法正确?
解决方法
为什么你不叫它
private final JpaCarRepository jpaCarRepository;
@GetMapping("/car")
public List<Car> findAll(){
return jpaCarRepository.findAll();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。