我的项目中有一个问题,我的数据库总是打开10个连接。我正在使用在Elastic Beanstalk上运行的Spring Boot应用程序(REST API)。
应用程序启动后立即显示10个连接,而没有对数据库的任何查询。目前,我有4个存储库类,如下所示:
@Repository
@Transactional()
public class FieldJpaRepository {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@PersistenceContext
EntityManager entityManager;
public List<Field> findAll(){ //JPQL
TypedQuery<Field> namedQuery = entityManager.createNamedQuery("find_all_fields", Field.class);
return namedQuery.getResultList();
}
public Field findById(int id){
return entityManager.find(Field.class,id);
}
public List<Field> findAreaFields(float minLat, float maxLat, float minLng, float maxLng){
return entityManager.createQuery("FROM Field f WHERE f.lat BETWEEN :minLat AND :maxLat AND f.lng BETWEEN :minLng AND :maxLng ", Field.class)
.setParameter("minLat", minLat)
.setParameter("maxLat", maxLat)
.setParameter("minLng", minLng)
.setParameter("maxLng", maxLng)
.getResultList();
}
public Field updateOrInsertField(Field field){
return entityManager.merge(field);
}
public void deleteField(int id){
Field findField = findById(id);
entityManager.remove(entityManager.contains(findField) ? findField : entityManager.merge(findField));
}
}
我的application.properties文件如下:
spring.jpa.show-sql=true
spring.datasource.url=********
spring.datasource.username=******
spring.datasource.password=******
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=create
我做错什么了吗?我是否缺少任何配置参数?
谢谢。
答案 0 :(得分:0)
将spring.datasource.hikari.maximumPoolSize
设置为合适的值。
说明:
spring.datasource.hikari.*
是Hikari的特定设置