在 SQL 查询 (Hibernate/Mybatis/home-made) 中自动获取 to-be-used 列? - 创建图书馆的想法
Automatically get to-be-used columns in SQL query (Hibernate/Mybatis/home-made)? - An idea to create a library
我们知道不应该写SELECT *
;相反,应该写下确实会在业务逻辑中使用的列 (例如,SELECT blog_title, blog_content
在一个关于整篇文章的查询中,而 SELECT blog_title
在另一个只关心标题的逻辑中).
然而,在 MyBatis 或 Hibernate 中,恕我直言,我必须手动记下这些列...这似乎真的很浪费时间...
不知有没有办法让我们的生活更轻松?更具体地说:
- Mybatis/Hibernate 中是否有自动执行此操作的方法?
- 如果不是,我下面的幼稚想法能行得通吗? (如果是这样,我愿意创建一个 open-source 库。)
两个天真的想法(用Mybatis):
一个。静态分析 Java 语法树,看看谁使用了哪些列。
b。动态 运行 代码一次,并获得有关将使用哪些列的足够信息(可能通过像 cglib 这样的动态代理)。
或者,我们将不得不自己手动写下那些列,没有任何好的辅助工具?? :(
谢谢!
如果您的访问是动态的或在非 java 文件中,静态分析将非常困难,并且通过这种方式分析性能问题也将非常困难。看看 Blaze-Persistence Entity-View 提供的几乎就是您想要的!
我们知道不应该写SELECT *
;相反,应该写下确实会在业务逻辑中使用的列 (例如,SELECT blog_title, blog_content
在一个关于整篇文章的查询中,而 SELECT blog_title
在另一个只关心标题的逻辑中).
然而,在 MyBatis 或 Hibernate 中,恕我直言,我必须手动记下这些列...这似乎真的很浪费时间...
不知有没有办法让我们的生活更轻松?更具体地说:
- Mybatis/Hibernate 中是否有自动执行此操作的方法?
- 如果不是,我下面的幼稚想法能行得通吗? (如果是这样,我愿意创建一个 open-source 库。)
两个天真的想法(用Mybatis):
一个。静态分析 Java 语法树,看看谁使用了哪些列。
b。动态 运行 代码一次,并获得有关将使用哪些列的足够信息(可能通过像 cglib 这样的动态代理)。
或者,我们将不得不自己手动写下那些列,没有任何好的辅助工具?? :(
谢谢!
如果您的访问是动态的或在非 java 文件中,静态分析将非常困难,并且通过这种方式分析性能问题也将非常困难。看看 Blaze-Persistence Entity-View 提供的几乎就是您想要的!