Попытка ПОЛУЧИТЬ одну тему http://localhost:8080/topics?id=1 в POSTMAN. Получил следующую ошибку

Режим подключения только для чтения не применяется после того, как соединение установлено. Чтобы обеспечить подключение только для чтения, задайте источник данных или свойство подключения только для чтения. КОД ОШИБКИ = 4474, SQLSTATE = 01000

Вот мой контроллер

package com.course.springbootstarter.topic;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMethod;

@RestController
public class TopicController {

    @Autowired
    private TopicService topicService;

    @RequestMapping(method = RequestMethod.GET, value = "/topics")
    public List<Topic> getAllTopics() {
        return topicService.getAllTopics();
    }

    @RequestMapping(method = RequestMethod.GET, value = "/topics/{id}")
    public Topic getTopic(@PathVariable long id) {
        return topicService.getTopic(id);
    }

    @RequestMapping(method = RequestMethod.POST, value = "/addtopic")
    public void addTopic(@RequestBody Topic topic) {
        topicService.addTopic(topic);
    }

    @RequestMapping(method = RequestMethod.PUT, value = "/updatetopic/{id}")
    public void updateTopic(@RequestBody Topic topic, @PathVariable long id) {
        topicService.updateTopic(id, topic);
    }


}
Topic.java

package com.course.springbootstarter.topic;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "course")
public class Topic {

    private static final long serialVersionUID = -3009157732242241606L;
    @Id
    //@GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String name;
    private String description;

    public Topic() {

    }

    public Topic(long id, String name, String description) {
        super();
        this.id = id;
        this.name = name;
        this.description = description;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

}

Я получаю это сообщение об ошибке:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ / _` | \ \ \ \
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.3.RELEASE)

2019-03-20 10:43:39.947  INFO 10740 --- [           main] c.course.springbootstarter.CourseApiApp  : Starting CourseApiApp on IRL103021 with PID 10740 (C:\Users\c166422\Documents\github\springboot-restful-mysql-master\target\classes started by c166422 in C:\Users\c166422\Documents\github\springboot-restful-mysql-master)
2019-03-20 10:43:39.953  INFO 10740 --- [           main] c.course.springbootstarter.CourseApiApp  : The following profiles are active: demo
2019-03-20 10:43:40.156  INFO 10740 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@f61c7b6: startup date [Wed Mar 20 10:43:40 CDT 2019]; root of context hierarchy
2019-03-20 10:43:43.564  INFO 10740 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$45faa968] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-03-20 10:43:45.279  INFO 10740 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2019-03-20 10:43:45.307  INFO 10740 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2019-03-20 10:43:45.309  INFO 10740 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6
2019-03-20 10:43:45.557  INFO 10740 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-03-20 10:43:45.560  INFO 10740 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 5408 ms
2019-03-20 10:43:46.161  INFO 10740 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2019-03-20 10:43:46.201  INFO 10740 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-03-20 10:43:46.211  INFO 10740 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2019-03-20 10:43:46.213  INFO 10740 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2019-03-20 10:43:46.220  INFO 10740 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2019-03-20 10:43:47.813  INFO 10740 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2019-03-20 10:43:47.895  INFO 10740 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
        name: default
        ...]
2019-03-20 10:43:48.233  INFO 10740 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.0.11.Final}
2019-03-20 10:43:48.239  INFO 10740 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2019-03-20 10:43:48.248  INFO 10740 --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2019-03-20 10:43:48.428  INFO 10740 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2019-03-20 10:43:48.776  INFO 10740 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.DB2Dialect
2019-03-20 10:43:49.896  INFO 10740 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000228: Running hbm2ddl schema update
2019-03-20 10:43:50.052  INFO 10740 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-03-20 10:43:51.515  INFO 10740 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@f61c7b6: startup date [Wed Mar 20 10:43:40 CDT 2019]; root of context hierarchy
2019-03-20 10:43:51.783  INFO 10740 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/topics/{id}],methods=[GET]}" onto public com.course.springbootstarter.topic.Topic com.course.springbootstarter.topic.TopicController.getTopic(long)
2019-03-20 10:43:51.788  INFO 10740 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/addtopic],methods=[POST]}" onto public void com.course.springbootstarter.topic.TopicController.addTopic(com.course.springbootstarter.topic.Topic)
2019-03-20 10:43:51.791  INFO 10740 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/updatetopic/{id}],methods=[PUT]}" onto public void com.course.springbootstarter.topic.TopicController.updateTopic(com.course.springbootstarter.topic.Topic,long)
2019-03-20 10:43:51.795  INFO 10740 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/topics],methods=[GET]}" onto public java.util.List<com.course.springbootstarter.topic.Topic> com.course.springbootstarter.topic.TopicController.getAllTopics()
2019-03-20 10:43:51.823  INFO 10740 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2019-03-20 10:43:51.844  INFO 10740 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-03-20 10:43:51.974  INFO 10740 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-03-20 10:43:51.976  INFO 10740 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-03-20 10:43:52.125  INFO 10740 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-03-20 10:43:52.822  INFO 10740 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2019-03-20 10:43:53.509  INFO 10740 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2019-03-20 10:43:53.663  INFO 10740 --- [           main] c.course.springbootstarter.CourseApiApp  : Started CourseApiApp in 14.767 seconds (JVM running for 21.743)
2019-03-20 10:44:03.727  INFO 10740 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2019-03-20 10:44:03.731  INFO 10740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2019-03-20 10:44:03.820  INFO 10740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 88 ms
2019-03-20 10:44:03.976  INFO 10740 --- [nio-8080-exec-1] o.h.h.i.QueryTranslatorFactoryInitiator  : HHH000397: Using ASTQueryTranslatorFactory
2019-03-20 10:44:04.433  WARN 10740 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Warning Code: 4474, SQLState: 01000
2019-03-20 10:44:04.434  WARN 10740 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : [jcc][t4][10217][10310][4.19.66] Connection read-only mode is not enforceable after the connection has been established.
To enforce a read only connection, set the read-only data source or connection property. ERRORCODE=4474, SQLSTATE=01000

Я думаю, вам нужно показать нам свои application.properties (также для среды, которую вы начинаете здесь). А расскажите, чем вы пытались это решить? А также - какую базу данных вы используете и где она находится?

Andreas Lorenzen 20.03.2019 17:02

spring.datasource.driver-class-name=com.ibm.db2.jcc.DB2Drive‌​r spring.datasource.url=jdbc:db2://lddb2data00001:50002/COURSE‌SCHEM spring.datasource.username=db2user spring.datasource .password=db2password spring.jpa.generate-ddl=true spring.mvc.view.prefix: / spring.mvc.view.suffix: .jsp spring.profiles.active=demo

Titi 20.03.2019 17:28

см. также: www-01.ibm.com/support/docview.wss?uid=swg21685228

xerx593 20.03.2019 19:02

назовите его скорее "предупреждение", чем "ошибка".

xerx593 20.03.2019 20:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
6 415
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это сообщение можно игнорировать. Я не обнаружил, что это оказывает какое-либо влияние на приложение. Однако, если вы хотите подавить это предупреждение

  1. Вы можете изменить уровень регистратора.
  2. Вы можете подавить все предупреждения

следуйте этому для получения дополнительной информации Связь

# Опция корневого регистратора log4j.rootLogger=INFO, file # Направлять сообщения журнала в файл журнала log4j.appender.file=org.apache.log4j.RollingFileAppender #Перенаправлять в папку журналов Tomcat #log4j.appender.file.File=${catalina .home}/logs/logging.log log4j.appender.file.File=C:\\logigng.log log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout= org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{гггг-ММ-дд ЧЧ:мм:сс} %-5p %c{1}:%L - %m%n log4j.logger .org.hibernate.util.JDBCExceptionReporter=ОШИБКА

Titi 20.03.2019 19:37

Я попытался подавить все предупреждения, добавив это log4j.logger.org.hibernate.util.JDBCExceptionReporter=ERROR в log4j.properties, но все еще получая то же сообщение об ошибке. Режим подключения только для чтения не применяется после того, как соединение установлено. Чтобы обеспечить подключение только для чтения, задайте источник данных или свойство подключения только для чтения. КОД ОШИБКИ = 4474, SQLSTATE = 01000

Titi 20.03.2019 19:40

попробуйте: log4j.logger.org.hibernate.engine.jdbc.spi.SqlExceptionHelpe‌​r или даже log4j.logger.org.hibernate (работает "иерархически", "по имени/категории регистратора"), @Titi

xerx593 20.03.2019 20:53

Каково значение log4j.logger.org.hibernate.engine.jdbc.spi.SqlExceptionHelpe‌​r log4j.logger.org.hibernate, можете ли вы написать полный ответ? @xerx593

Titi 20.03.2019 21:05

@Titi ... на самом деле мне нравиться / я удовлетворен этим ответом здесь (на ваш первоначальный вопрос)! (+1) ..я имел в виду/звучит нормально: = ERROR. Для получения более подробной информации о «конфигурации ведения журнала гибернации» я бы отослал вас к этот хороший ответ.

xerx593 20.03.2019 21:09
Ответ принят как подходящий

Проблема устранена путем добавления этой строки в log4j.properties. Спасибо @xerx593

log4j.logger.org.hibernate.engine.jdbc.spi.SqlExceptionHelper=ERROR 

добро пожаловать, бро! :) (для уточнения: первая строка устанавливает (порог уровня ERROR) для конкретного имени регистратора/категории/(класса) (см. ваш исходный журнал!). Вторая строка устанавливает (...) в целом (для полного «журнала гибернации ")).

xerx593 20.03.2019 21:26

с учетом фактов я «почти уверен», что вторая линия работает! чтобы проверить только первую строку, попробуйте "автономно" (без/комментарии второй строки).

xerx593 20.03.2019 21:35

@ xerx593, ты прав! Мне нужна только эта строка, чтобы исправить эту проблему log4j.logger.org.hibernate.engine.jdbc.spi.SqlExceptionHelpe‌​r=ERROR

Titi 20.03.2019 21:56

для уточнения: ваше первоначальное (прокомментированное) имя регистратора, похоже, относится к более старой версии гибернации: log4j.logger.org.hibernate.util.JDBCExceptionReporter=..., я нашел фактическую через «имя класса» (это «не по умолчанию», а «обычная практика» именовать регистраторы (полностью квалифицированное) имя класса) в (журналах) вашего поста: 2019-03-20 10:44:04.433 WARN 10740 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Warning....

xerx593 20.03.2019 22:00

Другие вопросы по теме