Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить last inserted id / 9 сообщений из 9, страница 1 из 1
01.07.2020, 15:54
    #39974940
bobo96
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
Привет, как при вставке данных получить id этой записи ?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@PersistenceContext
private EntityManager entityManager;

@Transactional
public boolean insertAddress(int id, int delay, String address) {

    try {
        entityManager.createNativeQuery(
                "INSERT INTO location_alarm (id_user, date_time, address, address_alarm_delay) " +
                        "VALUES (?, GETDATE(), ?, ?)")
                .setParameter(1, id)
                .setParameter(2, address)
                .setParameter(3, delay)
                .executeUpdate();
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
}
...
Рейтинг: 0 / 0
01.07.2020, 16:07
    #39974948
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
bobo96,

создайте модель.
Заполните параметры
выполните save/saveOrUpdate
у модели выполните object.getId()

из данного запроса почти никак
синхронайз + max(id) не считаем
...
Рейтинг: 0 / 0
01.07.2020, 16:14
    #39974955
bobo96
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(
...
Рейтинг: 0 / 0
01.07.2020, 16:17
    #39974958
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
bobo96,

@@IDENTITY (Transact-SQL) , SCOPE_IDENTITY (Transact-SQL)

Соответственно надо запрос изменить.
...
Рейтинг: 0 / 0
02.07.2020, 07:54
    #39975156
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
bobo96
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(

Вам надо рашить для примеров, будете ли вы дальше работать с Sql всякими insert, delete.
Или хотите по хиперски, как в хибере, работать с классами и запросы генерируются.
...
Рейтинг: 0 / 0
02.07.2020, 11:08
    #39975263
bobo96
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
PetroNotC Sharp
bobo96
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(

Или хотите по хиперски, как в хибере, работать с классами и запросы генерируются.

У меня пока нет таких глубоких познаний, мне бы просто сделать, что бы работало))
А как запросы могут сами генерироваться ? Ну за исключением каких-нибудь примитивов, типа User findById(int id);
...
Рейтинг: 0 / 0
02.07.2020, 11:32
    #39975277
kolchanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
...
Рейтинг: 0 / 0
02.07.2020, 11:33
    #39975278
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
bobo96
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(


https://howtodoinjava.com/hibernate/hibernate-save-and-saveorupdate/
...
Рейтинг: 0 / 0
02.07.2020, 12:58
    #39975346
bobo96
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить last inserted id
Всем спасибо, в итоге родил вот это:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    @Transactional
    public int insertAddress(int id, int delay, String address) {

        KeyHolder keyHolder = new GeneratedKeyHolder();
        JdbcTemplate jdbcTemplate = new JdbcTemplate(mDataSource);

        jdbcTemplate.update(con -> {
            PreparedStatement statement = con.prepareStatement(
                    "INSERT INTO location_alarm (id_user, date_time, address, address_alarm_delay) " +
                            "VALUES (?, GETDATE(), ?, ?) ", Statement.RETURN_GENERATED_KEYS);
            statement.setInt(1, id);
            statement.setString(2, address);
            statement.setInt(3, delay);
            return statement;
        }, keyHolder);

        return keyHolder.getKey() != null ? keyHolder.getKey().intValue() : 0;

    }



Вроде даже работает)))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить last inserted id / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]