Java-Spring&;MyBatis-我如何绘制地图;级别“;XML文件中的db列

Java-Spring&;MyBatis-我如何绘制地图;级别“;XML文件中的db列,spring,mybatis,oracle19c,Spring,Mybatis,Oracle19c,我是JavaSpring和我的Batis的新手,在映射DB列时遇到问题,DB列是Oracle中MyBatis3.4XML文件中的一个关键字 我正在使用JavaSpring2.2.11、Oracle19c和Mybatis3.4.0 映射器XML文件: <resultMap id="regionResultMap" type="org.idashboard.entity.Region"> <id column="code&q

我是JavaSpring和我的Batis的新手,在映射DB列时遇到问题,DB列是Oracle中MyBatis3.4XML文件中的一个关键字

我正在使用JavaSpring2.2.11、Oracle19c和Mybatis3.4.0

映射器XML文件:

<resultMap id="regionResultMap" type="org.idashboard.entity.Region">
    <id column="code" property="code"/>
    <result column="parent_code" property="parentCode"/>
    <result column="ancestors" property="ancestors"/>
    <result column="name" property="name"/>
    <result column="level" property="level"/>
    <result column="sort" property="sort"/>
    <result column="remark" property="remark"/>
</resultMap>
SELECT code,
       parent_code,
       ancestors,
       name,
       level,
       sort,
       remark
  FROM region
 WHERE code = '110102';
错误描述:
[Error]执行(30:8):ORA-01788:此查询块中需要CONNECT BY子句

出现问题是因为我在
区域
表中使用了
的“级别”

我如何解决这个问题?如何使用Oracle中的关键字列名


提前谢谢

我认为oracle有两种选择

首先是在查询中使用别名,但在本例中并不能为您解决任何问题,因为您使用xml中的名称级别对其进行了映射


第二,可以使用双引号(,例如“level”),在MySQL中,默认情况是使用反勾(`)

我认为oracle中有两个选项

首先是在查询中使用别名,但在本例中并不能为您解决任何问题,因为您使用xml中的名称级别对其进行了映射

其次,可以使用双引号(“,例如“level”),在MySQL中,默认情况下使用反勾(`)

试试看

SELECT code,
       parent_code,
       ancestors,
       name,
       "level",
       sort,
       remark
  FROM region
 WHERE code = '110102';
如果您需要在查询中使用关键字,oracle会使用双引号(“)将该单词标识为非关键字。在mysql中,您需要使用反勾号(`),以达到相同的目的。

试试看

SELECT code,
       parent_code,
       ancestors,
       name,
       "level",
       sort,
       remark
  FROM region
 WHERE code = '110102';

在查询中需要使用关键字的情况下,oracle使用双引号(“)将该单词标识为非关键字。在mysql中,出于同样的目的,您需要使用backticks(`)。

请不要只发布代码作为答案,还要解释代码的作用以及如何解决问题。带有解释的答案通常更有帮助,质量更好,并且更有可能吸引更多的投票。请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票。