Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用空格休眠slqjdbc4列_Java_Sql Server_Hibernate_Sql Server 2008 - Fatal编程技术网

Java 用空格休眠slqjdbc4列

Java 用空格休眠slqjdbc4列,java,sql-server,hibernate,sql-server-2008,Java,Sql Server,Hibernate,Sql Server 2008,我需要用hibernate在Java中映射sqlserver中的一个表,该表的列名中有空格。 我将SQLServer2008JRE7com.microsoft.Sqlserver.sqljdbc4与Hibernate3.3.2一起使用 我在不同的论坛上发现了很多类似的问题,但我读到的解决方案都不管用 我试着用反勾 <property name="nameSpaces" type="string" > <column name="`Name with sp

我需要用hibernate在Java中映射sqlserver中的一个表,该表的列名中有空格。 我将SQLServer2008JRE7com.microsoft.Sqlserver.sqljdbc4与Hibernate3.3.2一起使用 我在不同的论坛上发现了很多类似的问题,但我读到的解决方案都不管用

我试着用反勾

    <property name="nameSpaces" type="string" >
        <column name="`Name with spaces`"  not-null="false" />
    </property>
我还尝试使用[]brakets,但hibernate再次将其转换为`

        <column name="[Name with spaces]"  not-null="false" />

      com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '`'.
最后我也试了两种

        <column name="`[Name with spaces]`"  not-null="false" />

没有成功

有人能帮我吗?是否有任何hibernate配置可以更改以使用这些列名


谢谢

BilalDja的答案隐藏在上面的评论中。我发现他的答案很有帮助,所以我想我会在这里为其他有同样问题的人添加答案

这个问题很难调试,我必须深入研究hibernate和jdbc代码,最终找到真正的SQL语句,该语句是为从数据库获取数据而创建的。然后,我复制了它的值,并在我的SQL Server数据库上手动运行它。很明显,语法错误是由列名中的空格引起的

为了解决这个问题,我刚刚跳过了问题列名周围的双引号,正如BilalDja在评论中解释的那样,并在这里稍微扩展了一下

@Column(name = "\"Column name\"")
private String variableColumnWillMapTo;

就这样,问题解决了,不再出现语法错误。

为什么要在列名中加空格?使用snake_case我不想要空格,不幸的是我没有设计数据库,我被要求不要更改列名。我的朋友,我是注释迷。我尝试了一下,它在注释中运行得非常流畅@实体@Tablename=\test\u table\public class TestModel{@Id@Columnname=\testid\private int Id;public TestModel{}
@Column(name = "\"Column name\"")
private String variableColumnWillMapTo;