Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Hibernate Grails命名id列错误_Hibernate_Postgresql_Grails_Identifier_Quoting - Fatal编程技术网

Hibernate Grails命名id列错误

Hibernate Grails命名id列错误,hibernate,postgresql,grails,identifier,quoting,Hibernate,Postgresql,Grails,Identifier,Quoting,我的域类有问题。每次尝试插入条目时,都会出现以下错误: The column name "Sequence_No" was not found in this ResultSet. 这是我的域类: class Record { String firstName String middleName String lastName String motherMaidenLastName String motherMaidenMiddleName Date birthDate String exa

我的域类有问题。每次尝试插入条目时,都会出现以下错误:

The column name "Sequence_No" was not found in this ResultSet.
这是我的域类:

class Record {

String firstName
String middleName
String lastName
String motherMaidenLastName
String motherMaidenMiddleName
Date birthDate
String examTypeCode
Date examinationDate

static constraints = {
    firstName nullable:false, blank:false, maxSize: 50
    middleName nullable:true, blank:true, maxSize: 50
    lastName nullable:false, blank:false, maxSize: 50
    motherMaidenLastName nullable:true, blank:true, maxSize: 50
    motherMaidenMiddleName nullable:true, blank:true, maxSize: 50
    birthDate  nullable: false
    examTypeCode  nullable: false, maxSize: 4
    examinationDate  nullable: false
}

static mapping  = {
    datasource 'oevs'
    table '`elig`'
    id column: '`Sequence_No`'
    firstName column: '`FirstName`'
    middleName column: '`MiddleName`'
    lastName column: '`LastName`'
    motherMaidenLastName column: '`MotherMaidenLastName`'
    motherMaidenMiddleName column: '`MotherMaidenMiddleName`'
    birthDate column: '`Date_Birth`'
    examTypeCode column: '`ExamType`'
    examinationDate column: '`Date_Exam`'
    }
}

但是我试图保存的条目被插入到数据库中,它只是抛出那个错误。我正在使用PostgreSQL。我被要求这样命名列名。这就是为什么我需要在列的命名中添加一个反勾号,因为如果不这样做,PostgreSQL会自动将其转换为小写字母。每次我删除id列中的反勾号字符时,都不会显示错误,但很明显列名已转换为小写。

错误出现在以下语句中:

这就是为什么我需要在命名列时放置回勾字符的原因 因为PostgreSQL会自动将其转换为小写字母 如果你不这样做

反勾号(``)仅在MySQL中使用(毫无意义地违反了SQL标准-您可以使用
设置SQL_模式='ANSI';
来修复此问题)。Backticks对PostgreSQL或标准SQL没有特殊意义。在PostgreSQL中使用双引号(
)实现您的目标。更多详情请参阅

您几乎完全正确:在PostgreSQL中,不带双引号的标识符转换为小写。有关详细信息,请阅读手册中的章节


我通常建议不要在PostgreSQL中使用CamelCase标识符。有很多方法可以让你绊倒。困惑用户的绝望问题不断出现在这里。不要使用CamelCase,如果可以的话,永远不要重复引用标识符。创建非标准标识符后,必须在任何时候双引号…

错误出现在以下语句中:

这就是为什么我需要在命名列时放置回勾字符的原因 因为PostgreSQL会自动将其转换为小写字母 如果你不这样做

反勾号(``)仅在MySQL中使用(毫无意义地违反了SQL标准-您可以使用
设置SQL_模式='ANSI';
来修复此问题)。Backticks对PostgreSQL或标准SQL没有特殊意义。在PostgreSQL中使用双引号(
)实现您的目标。更多详情请参阅

您几乎完全正确:在PostgreSQL中,不带双引号的标识符转换为小写。有关详细信息,请阅读手册中的章节


我通常建议不要在PostgreSQL中使用CamelCase标识符。有很多方法可以让你绊倒。困惑用户的绝望问题不断出现在这里。不要使用CamelCase,如果可以的话,永远不要重复引用标识符。一旦您创建了一个非标准标识符,您就必须在任何时候对其进行双引号…

您是否在数据源中使用create drop或update?你检查过数据库模式吗?是的,我在数据源中使用create-drop。我已经检查过模式。这个错误似乎是由id列中的backtick字符引起的,每次我删除id列上的backtick,一切都很顺利。让我困惑的是,其他带有回勾字符的属性列不会导致与id列不同的任何错误。您是否在数据源中使用create drop或update?你检查过数据库模式吗?是的,我在数据源中使用create-drop。我已经检查过模式。这个错误似乎是由id列中的backtick字符引起的,每次我删除id列上的backtick,一切都很顺利。让我困惑的是,其他带有反勾号字符的属性列不会导致与id列不同的任何错误。我在域类中使用双引号(“”)对其进行了测试,同样的情况也发生了。除了grails域类中带有反勾号(```)的id列之外,我所有声明的列都在CamelCase中成功命名。我被要求以这种方式命名这些列,也许我应该建议他们以您所说的标准方式命名表列,因为我仍然不知道如何在grails中解决这个问题。我在我的域类中使用双引号(“”)对其进行了测试,同样的情况也发生了。除了grails域类中的id列之外,我所有声明的列都带有反勾号(``)在CamelCase中被成功命名。我被要求以这种方式命名这些列,也许我应该建议他们以您所说的标准方式命名表列,因为我仍然不知道如何在grails中解决这个问题。