Comments (3)
你好,@pengbiaobeyond!很高兴再次看到你的问题 😊
在Apollo项目中,我们并没有使用mapper.xml文件来实现repository接口。相反,我们使用了Spring Data JPA来实现这些接口。
Spring Data JPA允许我们通过扩展其特定的子接口(如PagingAndSortingRepository
)来定义repository接口,这个子接口提供了通用的CRUD操作方法以及分页和排序功能。这些接口的实际实现是由Spring Data JPA在运行时提供的。
在我们提供的AuditRepository
接口中,我们使用@Query
注解来定义自定义查询方法。这个注解允许我们直接指定JPQL(Java Persistence Query Language)查询。我们使用@Param
注解来命名方法参数,这些参数然后在JPQL查询字符串中使用。这种方法消除了需要单独的mapper.xml文件来定义SQL或JPQL查询的需要,因为查询是直接在repository接口中使用注解定义的。
支持这种实现的关键点包括:
PagingAndSortingRepository
接口提供了基本的CRUD和分页/排序操作。- 使用
@Query
注解在接口中直接定义自定义查询。 @Param
注解指定了在自定义查询中使用的参数的名称。
这种方法简化了repository层,减少了样板代码,并避免了需要单独的XML文件来定义查询,充分利用了Spring Data JPA和其与JPA规范的集成的能力。
你可以在以下链接中查看相关的代码:
希望这个解答能帮助你理解Apollo项目中repository接口是如何实现的。如果你还有其他问题,欢迎继续提问。
Sources
- apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/repository/AuditRepository.java
- apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/repository/AppRepository.java
- apollo-common/src/main/java/com/ctrip/framework/apollo/common/aop/RepositoryAspect.java
About Dosu
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.
from apollo.
好的,谢谢
from apollo.
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.
from apollo.
Related Issues (20)
- Portal 模块 RestTemplate 支持配置 ConnectionTimeToLive
- apollo2.1.0集成pgsql,求给一份pgsql的sql文件。mysql的不可以用 HOT 4
- 无法删除旧的配置 HOT 7
- 在项目namespace数量比较多的情况下(大约1000个),打开页面加载速度很慢,比较影响用户体验,这个是否有什么优化改进方案? HOT 9
- Apollo是否可以支持按照key维度来发布? HOT 4
- 1.8.0,接入一个app.id 使用多个namespace的时候,多个namesapce均开启了accesskey.sercet,这时候接入的配置代码要怎么写呢 HOT 3
- OidcLocalUserService throw an Exception when executing createLocalUser in OIDC profile HOT 6
- 麻烦问下,有什么办法能同时读到多个环境同一个配置的值吗? HOT 5
- 使用客户端添加string类型的配置项时会报错 HOT 3
- 配置从 2.1.0导出,导入到 2.2.0,数据中时间解析失败 HOT 1
- 在 apollo-portal统一增加访问路径的前缀/apollo 时,导入配置的请求url 有部分没有添加前缀 HOT 3
- apollo-portal 使用统一前缀/apollo以后,创建集群失败 HOT 2
- k8s部署apollo 接入ldap报错 HOT 3
- 请问有大佬已经在2.2.0版本上,数据源由mysql切换至pg了嘛? HOT 2
- 脚本启动与停止的问题 HOT 3
- 删除App后,相似的AppID权限异常,并无法恢复 HOT 4
- dockerfile基础镜像漏洞 HOT 4
- 使用docker安装apollo 镜像里面的demo.sh缺少读取环境变量的逻辑 HOT 2
- yml读取k-v的值错误 HOT 2
- Beautify Portal TraceLog UI interface
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apollo.