Как использовать raw sql, чтобы найти сущность в moqui - PullRequest
0 голосов
/ 21 февраля 2020

Я думаю, что есть очень хороший способ найти данные сущностей из mysql через view-entity. Но здесь я нахожусь в некоторых ситуациях, когда мне нужно использовать очень сложный запрос из mysql баз данных. Как у меня есть функция max с функциями group by и order by. Есть ли способ использовать сложный запрос в moqui?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Вы действительно можете выполнять довольно сложные запросы с помощью View Entities.

Просмотрите файл entity-definition-2.1.xsd для получения дополнительной информации.

Вы можете использовать агрегатные функции с <alias function="... и Предложение GROUP BY будет сгенерировано автоматически. Также поддерживаются

<order-by> элементы.

Кроме того, вы можете воспользоваться любой функцией SQL и сложными выражениями, вложив элементы <complex-alias>.

Помните, что вы можете создавать комбинации сущностей INNER JOIN с помощью <member-entity join-from-alias="... и OUTER JOIN с <member-entity join-from-alias="..." join-optional="true".

Пожалуйста, старайтесь всегда придерживаться стандартов SQL, чтобы сохранить сущность вида будучи независимым от ядра базы данных.

0 голосов
/ 03 марта 2020

Используйте тег script, и в нем вы можете получить соединение с базой данных через ExecutionContext getEntity, а затем getConnection.

ExecutionContext ec = context.ec
Connection con = ec.getEntity().getConnection(groupName)
def statement = con.createStatement()
def queryResult = statement.executeQuery(query)

Затем просто обработайте результаты, как описано в документации java. sql, и установите для них ранее определенный тег поля.

...