Заявление об обновлении - это не запрос?

Как определить оператор обновления в orm.xml. У меня это как именованный запрос, и все работает, но мой учитель сказал, что оператор обновления не является запросом. Я пробовал собственный запрос, но это не сработало.

ORM-тип:

<?xml version = "1.0" encoding = "UTF-8"?>
<entity-mappings version = "1.0"
    xmlns = "http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation = "http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd">

Заявление об обновлении:

<named-query name = "updateTshirts">
    <query>
        update Tshirt tshirt Set tshirt.bEdit = :bedit, tshirt.farbe = :farbe,
        tshirt.groesse = :groesse, tshirt.markenName = :markenname where
        tshirt.tID = :tid
    </query>
</named-query>

Что это за ОРМ? Это похоже на JPA XML, так что, вероятно, Hibernate?

Mark Rotteveel 12.05.2022 11:33

О, извините, я новичок в этом. Я отредактировал вопрос :) Спасибо за терпение^^

MarcW 12.05.2022 11:38

В любом случае, похоже, что ваш учитель зациклился на семантике слова query, которое некоторые интерпретируют как «что-то, что производит набор результатов» (ваш учитель), в то время как другие интерпретируют его шире, как «любой оператор DML» ( спецификацию JPA в этом случае). Короче говоря, ваше текущее определение кажется правильным. Разница между named-query заключается в том, что он принимает JPQL, а named-native-query принимает SQL на родном диалекте вашей целевой системы баз данных.

Mark Rotteveel 12.05.2022 11:38

@MarkRotteveel Хорошо, спасибо, сэр :) Тогда я не буду ничего менять. Хорошего дня ^^

MarcW 12.05.2022 11:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
17
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Термин "запрос" используется довольно неоднозначно. Некоторые люди интерпретируют его буквально как «запрос информации», имея в виду, что под этот термин подпадают только операторы select или другие вещи, производящие набор результатов, в то время как другие интерпретируют его более широко, как любой DML (язык манипулирования данными, т. е. выбор, вставка, обновление, удаление). , слияние и т. д.).

Ваш учитель, похоже, попадает в первую категорию, а люди, создавшие Jakarta Persistence API (JPA), — во вторую категорию. Итак, в некотором смысле вы оба правы, в первой интерпретации оператор обновления не является «запросом», но во второй интерпретации, используемой JPA, это «запрос».

Однако, учитывая контекст, ваша интерпретация лучше.

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