Мы знаем, что не должны писать SELECT *
; вместо этого следует записать столбцы, которые действительно будут использоваться в бизнес-логике c (например, SELECT blog_title, blog_content
в одном запросе о полной статье и SELECT blog_title
в другом логике c, которая заботится только о заголовках ) .
Однако в MyBatis или Hibernate, IMHO, мне приходится записывать эти столбцы вручную ... Кажется, действительно пустая трата времени ...
Интересно, есть ли способ сделать нашу жизнь проще? Более конкретно:
- Есть ли какой-нибудь автоматический c способ сделать это в Mybatis / Hibernate?
- Если нет, сработает ли моя следующая наивная идея? (Если это так, я готов создать библиотеку с открытым исходным кодом.)
Две наивные идеи (с Mybatis):
a. Статически проанализируйте синтаксическое дерево Java и посмотрите, кто какие столбцы использует.
b. Динамически запустите код один раз и получите достаточно информации о том, какие столбцы будут использоваться (возможно, через динамический прокси c, например cglib).
Или нам придется вручную записать эти столбцы самостоятельно, без каких-либо полезных помощников ?? : (
Спасибо!