не может соединиться с источником данных в проекте Grails - PullRequest
0 голосов
/ 15 ноября 2018

Я создал Grails 3.3.8 проект. Конфигурация источника данных (Oracle) успешно выполнена в файле application.yml. Но когда я использую источник данных в своем классном классе, я сталкиваюсь со следующей ошибкой:

Caused by GroovyRuntimeException: Ambiguous method overloading for method groovy.sql.Sql#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
    [interface java.sql.Connection]
    [interface javax.sql.DataSource]

Мой код:

package DATABASE_CONF
import groovy.sql.Sql  
/**
 *
 * @author CESC
 */
public class dbconn {

    def dataSource

    public String showname2() {

        def sql = new Sql(dataSource)
        def namestr = ""

        sql.eachRow('select * from TEST_TB') {
            tp -> 
            namestr = namestr + "<br>" + tp.NAME
        }  

        sql.close()
        return namestr          
    }       
}

1 Ответ

0 голосов
/ 15 ноября 2018

Ваш класс не может разрешить свойство dataSource, поэтому исключение перегрузки пустого и неоднозначного метода.

Причиной этого может быть то, что ваш класс находится в папке src и НЕ участвует в проводке бина (авто). Есть несколько вариантов решения проблемы:

  1. поместите ваш класс в / grails-app / services so it will get the dataSource` вводится автоматически (рекомендуется)
  2. объявляет dataSource как аргумент метода showname2() и передает его явно при каждом вызове.
  3. добавить механизм электромонтажа в ваш класс. Я не эксперт в Spring, но думаю, что это аннотация и некоторые настройки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...