当前位置: 首页 > 面试题库 >

DBunit; 关于表/列名称区分大小写的困惑

梁泰
2023-03-14
问题内容

启动我的应用程序时出现此错误

Caused by: org.dbunit.dataset.NoSuchColumnException: CLIENT.ID -  (Non-uppercase input column: ID) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive

我不太确定为什么要得到这个,因为我的表/列名称全部都以大写字母引用(即使该消息坚持认为这不应该成为问题)

我的桌子:

mysql> describe CLIENT;
+------------------+--------------+------+-----+---------+----------------+
| Field            | Type         | Null | Key | Default | Extra          |
+------------------+--------------+------+-----+---------+----------------+
| ID               | int(11)      | NO   | PRI | NULL    | auto_increment |
| jdoDetachedState | tinyblob     | YES  |     | NULL    |                |
| NAME             | varchar(255) | NO   |     | NULL    |                |
| ADDRESS1         | varchar(255) | YES  |     | NULL    |                |
| ADDRESS2         | varchar(255) | YES  |     | NULL    |                |
| COUNTRY          | varchar(255) | YES  |     | NULL    |                |
| COUNTY           | varchar(255) | YES  |     | NULL    |                |
| MAINPHONENUMBER  | varchar(255) | YES  |     | NULL    |                |
| POSTCODE         | varchar(255) | YES  |     | NULL    |                |
| SECTOR           | varchar(255) | YES  |     | NULL    |                |
| TOWN             | varchar(255) | YES  |     | NULL    |                |
| WEBSITEURL       | varchar(255) | YES  |     | NULL    |                |
+------------------+--------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)

mysql>

我的网域实体的代码段:

@Id
@GeneratedValue
@Column(name="ID")
private Integer id;

测试日期的片段,我试图强制DBUnit使用:

<dataset>
  <CLIENT ID="-1"
    ADDRESS1="Endeavour House"
    ADDRESS2="Russell Rd"
    COUNTRY="England"
    COUNTY="Suffolk"
    MAINPHONENUMBER="0845 606 6067"
    NAME="Suffolk County Council"
    POSTCODE="IP1 2BX"
    SECTOR="Local Government"
    TOWN="Ipswich"
    WEBSITEURL="www.suffolk.gov.uk"/>
</dataset>

我想不出要尝试的其他方法,删除了表并重新编译了Java代码,有什么想法吗?


问题答案:

您是否要尝试将ID已设置的Client放入数据库?ID列是只读的,只有数据库可以对其进行“写入”。



 类似资料:
  • 问题内容: 我在另一个列名称为的团队的Postgres中有一个db表说。现在,我试图使用PG指令在此列名上查询该表。 它只是返回 错误:列“ first_Name”不存在 不知道我是在做傻事还是对我遗失的问题有解决方法? 问题答案: 所有未加双引号的 标识符 (包括列名)在PostgreSQL中被折叠为小写。用双引号创建的列名并因此保留了大写字母(和/或其他语法违规),必须在余下的时间将双引号引起

  • 问题内容: 如果我有一个名为和的列名,它们是否不同? 如果我有一个名为和的表,它们是否不同? 问题答案: 在Unix上,表名区分大小写。在Windows上则不是。好玩,不是吗?Kinda喜欢各自的文件系统。你觉得这是巧合吗? 换句话说,如果您打算在Linux机器上进行部署,则也可以针对基于Linux的MySQL更好地测试SQL,或者在生产时为神秘的“找不到表”错误做好准备。这些天虚拟机很便宜。 字

  • 我有一个db表说,在Postgres传给另一个团队,有一个列名说,。现在我试图使用PG指挥官来查询这个列名称上的表。 然后它就回来了 错误:列"first_Name"不存在 不确定我是在做一些愚蠢的事情,还是有解决这个问题的方法,我错过了?

  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut

  • 问题内容: MySQL中的表名是否区分大小写? 在Windows开发机器上,我拥有的代码能够查询我的表,这些表看起来都是小写的。当我在数据中心中部署到测试服务器时,表名似乎以大写字母开头。 我们使用的服务器都在Ubuntu上。 问题答案: 一般来说: 数据库和表名在Windows中不区分大小写,在大多数Unix版本中都不区分大小写。 在MySQL中,数据库与data目录中的目录相对应。数据库中的每

  • 问题内容: 如果一个人在不同目录中编写了两个具有相同的不区分大小写名称的公共Java类,则这两个类在运行时将不可用。(我在Windows,Mac和Linux上使用多个版本的HotSpot JVM进行了测试。如果还有其他同时可用的JVM,我也不会感到惊讶。)例如,如果我创建了一个名为类的类,则这样命名: 在我的网站上可以找到三个包含上面代码的Eclipse项目。 如果尝试,我像这样调用两个类: 类型