在SQL查询中自动获取要使用的列(Hibernate/Mybatis/自制)?-创建一个图书馆的想法



我们知道我们不应该写SELECT *;相反,应该写下业务逻辑中实际使用的列(例如,在一个关于全文的查询中为SELECT blog_title, blog_content,在另一个只关心标题的逻辑中为SELECT blog_title(

然而,在MyBatis或Hibernate中,IMHO我必须手动写下这些列。。。这似乎真的是在浪费时间。。。

我想知道是否有办法让我们的生活更轻松?更具体地说:

  1. 在Mybatis/Hibernate中有自动的方法吗
  2. 如果没有,我下面的天真想法会奏效吗?(如果是这样的话,我愿意创建一个开源库。(

两个天真的想法(与Mybatis(:

a。静态分析Java语法树,并查看谁使用了哪些列。

b。动态运行一次代码,并获得足够的关于将使用哪些列的信息(可能通过像cglib这样的动态代理(。

或者,我们将不得不在没有任何好的帮助的情况下,自己手动写下这些列?:(

谢谢!

如果您的访问是动态的或在非java文件中,则静态分析非常困难,并且以这种方式分析性能问题也将非常困难。看看Blaze Persistence实体视图能提供什么,这几乎就是你想要的!

最新更新