Рубрики
Без рубрики

Импорт хранимых процедур в Apache Cayenne

Краткое описание Добавьте в раздел импорта базы данных плагинов cayenne в вашем pom.xml : <вкл... С пометкой java, orm, учебник.

основные положения

Добавьте в раздел импорта базы данных плагинов cayenne в вашем pom.xml:

Procedure_Name

Выполняйте свои команды maven:

mvn cayenne:cdbimport mvn cayenne:cgen

Второе должно привести к:

Добавить процедуру имя_процедуры

Вы можете использовать свою процедуру через:

// Returns a ProcedureResult
ProcedureCall
.query("Procedure_Name")
.param("param_name", param_value)
.call(context); // The previously created context.

Чтобы вернуть определенный класс:

ProcedureCall
.query("Procedure_Name",ModelClass.class)
.param("param_name", param_value)
.call(context); // The previously created context.

Чтобы вернуть список вашего конкретного класса:

ProcedureCall
.query("Procedure_Name",ModelClass.class)
.param("param_name", param_value)
.call(context) // The previously created context.
.firstList();

Предыстория

В настоящее время я использую Apache Cayenne для проекта, над которым я работаю для друга. До сих пор это было действительно полезно, но пару дней назад я понял, что это не автоматический импорт моей новой хранимой процедуры. Хотя есть код для вызова процедур, мне было трудно убедиться, что моя процедура была импортирована, когда я запустил cdbimport /|/cdbgen команды. Кроме того, мне было действительно трудно найти ресурсы/примеры.

В конце концов я закончил тем, что использовал “старый надежный” – ctrl + пробел. Пройдя через подразделы в pom.xml в разделе плагинов cayenne я нашел один тег с именем <включить процедуру> . Добавление его в раздел <Импорт бд> – это то, что, наконец, сделало свое дело:


    
            
        
             org.apache.cayenne.plugins
            cayenne-maven-plugin
            ${cayenne.version}
            
                
                
                    com.example
                    Procedure_Name
                
            
                    
        
    

После внесения этого изменения снова запустите команды cayenne cdbimport /| cgen , и вы сможете использовать процедуру следующим образом:

ProcedureCall
.query("Procedure_Name")
.param("param_name", param_value)
.call(context); // The previously created context.

В вызове процедуры есть нечто большее, чем просто этот пример, поэтому обязательно ознакомьтесь с приведенным выше кратким изложением и его Javadoc .

Надеюсь, это сэкономит кому-то некоторое время в будущем.

Оригинал: “https://dev.to/williamlake/importing-stored-procedures-in-apache-cayenne-560b”