我们知道我们不应该写SELECT *;相反,应写下确实会在业务逻辑中使用的列(例如,在有关完整文章的查询中,使用SELECT blog_title, blog_content,而在仅关心标题的另一种逻辑中,使用SELECT blog_title)。

但是,在MyBatis或Hibernate中,恕我直言,我必须手动写下这些列...这似乎确实是在浪费时间...

我想知道是否有办法使我们的生活更轻松?进一步来说:


Mybatis / Hibernate中有自动的方法吗?
如果没有,我的以下天真想法行得通吗? (如果是这样,我愿意创建一个开源库。)


两种幼稚的想法(使用Mybatis):

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

b。动态运行一次代码,并获得有关将使用哪些列的足够信息(也许通过诸如cglib之类的动态代理)。

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

谢谢!

最佳答案

如果您的访问是动态的或使用非Java文件访问,则静态分析非常困难,并且分析性能问题也将非常困难。看看Blaze-Persistence Entity-View所提供的几乎是您想要的!

关于java - 自动获取SQL查询中的待用列(Hibernate/Mybatis/自制)? -创建图书馆的想法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61399215/

10-12 04:16