Как я могу переключиться на уже существующую сессию SQL? - PullRequest
0 голосов
/ 03 марта 2020

Мой код выполняет несколько операторов sql, которые создают временные таблицы. Моя цель - иметь возможность просматривать состояние базы данных в другой консоли sql / инструменте / терминале, имеющей контекст сеанса sql приложения (в то время как поток приложения приостанавливается на точке останова отладки). Приложение использует стек Spring-data / hibernate / mariadb.

Я нашел способ, как этого добиться, используя оценщик выражений отладки IDE и обращаясь к базе данных через экземпляр EntityManager, например:

em.createNativeQuery("SELECT * FROM rating_per_season").getResultList()

Имхо довольно неудобно искать ошибки таким образом. Можно ли как-то переключиться на этот сеанс sql, используя другую консоль? Когда я перечисляю процессы через консоль:

show processlist;

output:

[
  {
    "Id": 119,
    "User": "fpsta",
    "Host": "localhost:53198",
    "db": "fp-sta",
    "Command": "Sleep",
    "Time": 1016,
    "State": "",
    "Info": null,
    "Progress": 0
  },
  {
    "Id": 148,
    "User": "fpsta",
    "Host": "localhost:54508",
    "db": "fp-sta",
    "Command": "Query",
    "Time": 0,
    "State": "Init",
    "Info": "/* ApplicationName=IntelliJ IDEA 2019.2.3 */ show processlist",
    "Progress": 0
  }
]

Теперь я хочу запустить другую консоль и затем переключиться на Id сессии: 119, затем продолжить писать свою собственную отладку sql высказываний.

MAGIC_COMMAND_SWITCH_TO 119;
...

Есть идеи?

1 Ответ

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

Невозможно подключиться к сеансу, который вы создали из кода. Вы можете переключать сеансы только между открытой SQL консолью windows. Однако вы можете создать запрос функции на нашем трекере. https://youtrack.jetbrains.com/issues/DBE

...