основные положения
Добавьте в раздел импорта базы данных плагинов 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”