Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/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
Java &引用;ORA-01754:表格只能包含一列LONG“类型;只有一个长型_Java_Database_Oracle_Hibernate - Fatal编程技术网

Java &引用;ORA-01754:表格只能包含一列LONG“类型;只有一个长型

Java &引用;ORA-01754:表格只能包含一列LONG“类型;只有一个长型,java,database,oracle,hibernate,Java,Database,Oracle,Hibernate,我在Oracle中使用hibernate,在服务启动之前,在运行时使用hbm2ddl选项更新表 今天,我开始面临一个奇怪的问题,我知道表T有两个Oracle不支持的长列 @Table(name="table_t") @Entity public class T extends BaseEntity{ @Id Long id; @Column(name="col1") Long col1; @Column(name="col2") Integer col2; } 面对这个问题后,我将co

我在Oracle中使用hibernate,在服务启动之前,在运行时使用hbm2ddl选项更新表

今天,我开始面临一个奇怪的问题,我知道表T有两个Oracle不支持的长列

@Table(name="table_t")
@Entity
public class T extends BaseEntity{

@Id
Long id;

@Column(name="col1")
Long col1;

@Column(name="col2")
Integer col2;

}
面对这个问题后,我将col1的数据类型更改为Integer(表不是在数据库中创建的),并尝试重新运行应用程序,但仍然失败,并出现相同的错误

当前架构如下所示:

@Table(name="table_t")
@Entity
public class T extends BaseEntity{

@Id
Long id;

@Column(name="col1")
Integer col1;

@Column(name="col2")
Integer col2;

}
为什么会这样?我试着打扫、重建等等

元信息是否已经存储在某个地方?或者我错过了什么


谢谢,

该表可能有一个未使用的长列。 您将无法看到它,但需要先删除它,然后才能添加另一个。 我试着在这篇文章中解释:

那些
Long
属性应该映射到Oracle中的
NUMBER
列,而不是
Long
Long
是一种
BLOB
数据类型,它不是整数类型)-我会检查您是否使用了正确的Hibernate方言。即使有一个Long,它也会失败吗?这是方言,不是“失败与否”的问题。Oracle
LONG
数据类型是完全错误的选择。