在Hibernate中,我不断收到错误:
ORA-00904: "TABLE_"."COLUMNNAME": invalid identifier
似乎只有我有这样的时间:
@Column(nullable=false)
private String bankID;
而不是例如:
@Column(name = "BANK_ID", nullable=false)
private String bankID;
是否需要为我的实体中的每个字段设置列名?
答案 0 :(得分:1)
ORA-00904: "TABLE_"."COLUMNNAME": invalid identifier
实际上是一个oracle错误,你可以在这里看到它的原因:ORA-00904: invalid identifier
问题可能在于列的名称设置为" bankID",正如之前的问题所说,从现在开始必须使用双引号引用该列,我可能认为{{1} }是主键/外键,hibernate试图引用它而没有双引号,因此错误。
现在,当您撰写bankID
时,您已按照上一个问题的建议:将所有字符置于大写字母中。
老实说,我不知道你是否可以认为这是一个Hibernate错误或意见(也许他们应该在文档中提到它),如果它已经作为一个错误提交并得到修复,那么升级将解决你的问题。
以Column(name="BANK_ID",...
开头的每个错误都可能是一个oracle错误,您可以在其后面点击数字(ORA
),并且您将获得大多数答案。
答案 1 :(得分:0)
可以通过在Configuration上设置NamingStrategyDelegate(或旧版本的NamingStrategy)来自定义。默认命名策略是使用与列名相同的值。要插入下划线,您可以使用ImprovedNamingStrategyDelegate(或ImprovedNamingStrategy)。