-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
An ORM framework for nebula-java #347
Comments
|
类似这样,用注解的方式标注Entity,用基础的Mapper执行查询或者更新操作,查询封装了API的方式操作,基础的Mapper也支持自己手写ngql |
这个需求看到issues里面很多人提过,类似的:查询结果直接转换为java bean,nebula支持springboot等,都是此类需求。 |
封装查询API的好处:1、面向对象,更加直观立体
目前查询API存在的问题:1、支持的查询语法不是很全面(够我们的业务用了) |
@Anyzm 发布把 |
查询返回结果有封装:
|
更新删除也有简单封装:
|
谢谢提供的方案,想问一下你这里是主要基于反射实现的吗?我们后续可能也会看重一下这个方案对于其他客户端的适用性,你是否觉得对于python,go客户端你的大体方案也同样适用?有时间可以一起沟通聊一聊 |
Go 的话社区也还没来得及做 ORM,不过 zhihu 做了一个 --> https://github.com/zhihu/norm |
其实我对于python和go的了解程度很浅,据我个人的认知,我觉得go也可以按照类似的思路实现,因为go本身和java很类似,都是强类型语言,go的出现本就被预言是用来替代java的。至于python,我觉得可能不是特别适合,因为Python是弱类型语言,更像脚本,所以python可能需要另外的思路实现,可能更有利于用户方便使用。 |
周末我可以将代码提一个PR,或者发布到我的个人仓库 |
是的 主要是python 那先看一下你的PR吧 谢谢 |
PR提了,可能有两个问题:注释是中文,另外新加的模块没加代码chekStyle,其余基本ok,大佬们看下吧 |
你好 你在写这套orm框架的时候有写设计文档吗?如果有的话可以提供一下吗,方便review一些,谢谢 |
没有写设计文档,只是在脑海中设计了一下。回头我再补充一下设计文档 |
再次感谢你对nebula社区做出的贡献,前面因为一些事情耽误了你这边的review,实在不好意思 |
没事,反正不着急,设计文档已经补充到PR中了,请查看,如依然有任何问题可随时沟通。 |
您好,非常感谢您的贡献。我们内部沟通了一下,java orm可以参考go orm,可以在自己的组织开源,也可以个人开源。 |
好的 |
在个人仓库已发布,过段时间上传中央仓库,开发者也可以下载源码自己改。 |
感谢Anyzm老师提供的orm:https://github.com/nebula-contrib/graph-ocean |
感谢您的来件,邮件已收到。
|
使用示例:
业务代码层引入框架中的基础Mapper,可以直接操作实体类,
比如保存边:public <S, T, E> int saveEdgeEntities(List entities) throws NebulaException;
比如查询顶点:public List fetchVertexTag(Class vertexClazz, String... vertexIds);
另外查询支持API: public QueryResult executeQuery(GraphQuery query) throws NebulaException;
等等
当然也自己集成了spring-boot-starter
目前已经用于生产,没有明显大问题
不知大家有什么好的建议呢?
The text was updated successfully, but these errors were encountered: