ngbatis icon indicating copy to clipboard operation
ngbatis copied to clipboard

select got SemanticError: Space was not chosen

Open helomaki opened this issue 2 years ago • 17 comments

org.nebula.contrib.ngbatis.exception.QueryException: 数据查询失败: 数据查询失败SemanticError: Space was not chosen. image image image

helomaki avatar May 10 '23 12:05 helomaki

用 官方的demo 跑的

helomaki avatar May 10 '23 13:05 helomaki

https://github.com/nebula-contrib/ngbatis/blob/master/src/main/java/org/nebula/contrib/ngbatis/NgbatisContextInitializer.java#L73-L73

可以在这里断点看下吗,感觉像配置没生效

CorvusYe avatar May 10 '23 13:05 CorvusYe

image 您好我也报同样的问题、watch org.nebula.contrib.ngbatis.proxy.MapperProxy getSpace '{params,returnObj,throwExp}' -n 5 -x 3 这个的是有space的、但是最后报错 Caused by: org.nebula.contrib.ngbatis.exception.QueryException: 数据查询失败SemanticError: Space was not chosen. at org.nebula.contrib.ngbatis.proxy.MapperProxy.executeWithParameter(MapperProxy.java:232) ... 63 common frames omitted

yuzyf avatar May 11 '23 02:05 yuzyf

image 这里面的localSession的space是空的、会是啥原因导致的呢

yuzyf avatar May 11 '23 02:05 yuzyf

Hi, @yuzyf 用的是 1.1.2 的版本吧,是的话,可以有两个做法

  1. 一个是先把 sessionPool 的功能关掉,这个版本有一些问题
nebula.ngbatis.use-session-pool: false
  1. 升级到 1.2.0-SNAPSHOT 版本,这个版本合并了PR144,修复了 sessionPool 不读取 yml space 的问题,快照版本需要在 pom.xml project标签内添加块照仓库:
	<repositories>
		<repository>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>always</updatePolicy>
				<checksumPolicy>warn</checksumPolicy>
			</snapshots>
			<id>ossrh</id>
			<name>Nexus Snapshot Repository</name>
			<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
		</repository>
	</repositories>

CorvusYe avatar May 11 '23 03:05 CorvusYe

nebula.ngbatis.use-session-pool: false

版本是1.1.1呢

yuzyf avatar May 11 '23 03:05 yuzyf

版本是1.1.1呢

试试在这个地方断点看看 https://github.com/nebula-contrib/ngbatis/blob/v1.1.1/src/main/java/org/nebula/contrib/ngbatis/proxy/MapperProxy.java#L261 这一行执行失败也可能导致 Space was not chosen.

CorvusYe avatar May 11 '23 03:05 CorvusYe

版本是1.1.1呢

试试在这个地方断点看看 https://github.com/nebula-contrib/ngbatis/blob/v1.1.1/src/main/java/org/nebula/contrib/ngbatis/proxy/MapperProxy.java#L261 这一行执行失败也可能导致 Space was not chosen.

好的、我再试试

yuzyf avatar May 11 '23 03:05 yuzyf

嗯嗯,或者到数据库中执行下 SHOW SPACES 看看这个 space 是不是不存在。

CorvusYe avatar May 11 '23 03:05 CorvusYe

嗯嗯,或者到数据库中执行下 SHOW SPACES 看看这个 space 是不是不存在。

已经解决了哈、我同事创建speace的时候多了个空格😂、导致执行sql的时候、其实代码的space是不存在、才报的Space was not chosen.这个错误、建议是不是可以提示的再明确些好一些呢、最后非常感谢您的支持

yuzyf avatar May 11 '23 05:05 yuzyf

嗯嗯,刚刚也有考虑在执行 use space 的正行获取 ResultSet 如果 err_code 不是 SUCCESS 直接抛错,可能会友好一些。

或者如果可以的话,提个PR也行~

CorvusYe avatar May 11 '23 05:05 CorvusYe

嗯嗯,刚刚也有考虑在执行 use space 的正行获取 ResultSet 如果 err_code 不是 SUCCESS 直接抛错,可能会友好一些。

或者如果可以的话,提个PR也行~

好的、

yuzyf avatar May 11 '23 06:05 yuzyf

嗯嗯,或者到数据库中执行下 SHOW SPACES 看看这个 space 是不是不存在。

已经解决了哈、我同事创建speace的时候多了个空格😂、导致执行sql的时候、其实代码的space是不存在、才报的Space was not chosen.这个错误、建议是不是可以提示的再明确些好一些呢、最后非常感谢您的支持

我今天下午也遇到了,nebula-studio创建的space最前面多一个空格,然后适配的时候,use space阶段报错。知道这个错误也解决不了,ngbatis 赋值space时默认去掉首尾空格,但是 nebula-studio创建space,首尾空格有效,不知道这是不是nebula有意为之,好在dev可以随便删除空间再创建

ngbatis后面是否考虑支持这种不去除空格的方式 列如 nebula.space: playground()或者其他方式

zwzdream avatar May 16 '23 11:05 zwzdream

我今天下午也遇到了,nebula-studio创建的space最前面多一个空格,然后适配的时候,use space阶段报错。知道这个错误也解决不了,ngbatis 赋值space时默认去掉首尾空格,但是 nebula-studio创建space,首尾空格有效,不知道这是不是nebula有意为之,好在dev可以随便删除空间再创建

ngbatis后面是否考虑支持这种不去除空格的方式 列如 nebula.space: playground()或者其他方式

@zwzdream 刚刚测了下,配置读取时是可以携带空格的,但因为执行空间切换时未对空间名首尾做边界确定导致执行时空格被忽略。 已经在这个提交中修复 a99851c

对应 yml 的配置,需要用 引号 将空格纳入,如:

nebula:
-  space: test  
+  space: "test  "

CorvusYe avatar May 16 '23 13:05 CorvusYe

请问大家的 studio 版本是? 可以来 report 一下么? https://github.com/vesoft-inc/nebula-studio

wey-gu avatar May 17 '23 01:05 wey-gu

请问大家的 studio 版本是? 可以来 report 一下么? https://github.com/vesoft-inc/nebula-studio

我这边用的是 v3.4.0 的版本 image

CorvusYe avatar May 17 '23 08:05 CorvusYe

Aha, sorry, I thought the space was automatically added, if it's introduced by user, then it's just a char escaping issue:

see:

(root@nebula) [(none)]> create space ` test `(vid_type = fixed_string(30));
Execution succeeded (time spent 2.117ms/107.990125ms)

Wed, 17 May 2023 16:24:57 CST

(root@nebula) [(none)]> use ` test `
[ERROR (-1005)]: SpaceNotFound: SpaceName ` test `

Wed, 17 May 2023 16:25:04 CST

(root@nebula) [(none)]> use `\ test\ `
Execution succeeded (time spent 1.05ms/24.459334ms)

Wed, 17 May 2023 16:25:10 CST

wey-gu avatar May 17 '23 08:05 wey-gu