spring boot + jpa 的项目开发起来很快很舒服(至少开发起来是这样),从开发的角度来说(小公司没有数据库维护人员),基于注解的查询方式是最快并且最方便的.但是:
jpa竟然不支持动态sql,要知道,java的强大在于处理复杂的业务逻辑,后台系统一般java开发的居多,不支持动态sql感觉像断了条手一般的无奈.
so,我想向大神们请教,jpa有没有可能,在自己封装一层的情况下,优雅的实现动态sql,目前已知的有:
1:自定义注解,配合拦截器实现:http://gogs.daikun.xin:3000/d...优点:完全自定义,灵活性高,且完全保留所有的jpa原生提供的接口,例如:JpaRepository等,缺点:aop 大量使用反射,性能可能偏低(这都是虚的),这个思路是我自己写的,安全性,以及可靠性,说实话,我是不敢用,尽管demo测试通过.
2:覆写jpa的接口,并新加支持动态sql的接口,利用SimpleJpaRepository实现部分原生的接口,并对动态sql提供支持,优点:原生的写法,支持动态sql,缺点:如果sql定义不放在dao层,则破坏mvc设计模式,放在dao层,我感觉这就是一个工具类,类还是要那么多,怎么快?.由于是覆写?新用到的jpa接口也要覆写(当然,不会用到太多),但是不想jpa那样继承就可以帮我实现.
我知道的就是以上几种,感觉都不是很优雅,我相信肯定有更优雅的实现方式,求大神指教.
感谢
叮当猫咪
慕勒3428872
斯蒂芬大帝
相关分类