Автоматически получать используемые столбцы в запросе SQL (Hibernate / Mybatis / home-made)? - идея создать библиотеку - PullRequest
0 голосов
/ 24 апреля 2020

Мы знаем, что не должны писать SELECT *; вместо этого следует записать столбцы, которые действительно будут использоваться в бизнес-логике c (например, SELECT blog_title, blog_content в одном запросе о полной статье и SELECT blog_title в другом логике c, которая заботится только о заголовках ) .

Однако в MyBatis или Hibernate, IMHO, мне приходится записывать эти столбцы вручную ... Кажется, действительно пустая трата времени ...

Интересно, есть ли способ сделать нашу жизнь проще? Более конкретно:

  1. Есть ли какой-нибудь автоматический c способ сделать это в Mybatis / Hibernate?
  2. Если нет, сработает ли моя следующая наивная идея? (Если это так, я готов создать библиотеку с открытым исходным кодом.)

Две наивные идеи (с Mybatis):

a. Статически проанализируйте синтаксическое дерево Java и посмотрите, кто какие столбцы использует.

b. Динамически запустите код один раз и получите достаточно информации о том, какие столбцы будут использоваться (возможно, через динамический прокси c, например cglib).

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

Спасибо!

1 Ответ

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

Stati c анализ довольно сложный, если у вас динамический доступ c или в файлах, отличных от java, и анализ проблем с производительностью будет очень сложным, это тоже было. Посмотрите на то, что Blaze-Persistence Entity-View может предложить то, что почти то, что вы хотите!

...