Spring + Oracle + JPA + H2 ORA-00972:标识符太长

时间:2016-04-16 04:27:34

标签: oracle11g spring-boot spring-data spring-data-jpa

我正在使用Spring boot + H2 + Oracle + JPA。

当我使用H2时,一切正常。像插入和检索操作一样工作正常。但是当我将下面的配置放在使用Oracle时,无论我对Oracle做什么操作,都会开始抛出异常。

database-platform: org.hibernate.dialect.Oracle10gDialect
datasource:
url: "jdbc:oracle:thin:@//localhost:1521/XE"
username: root
password: root
driver-class-name: oracle.jdbc.OracleDriver

我创建了一个只有id和name的简单Test类,并试图用Oracle保存它,即使使用Oracle也能正常工作。但我的旧豆子没有与甲骨文合作。

以下是我在Oracle和H2中都有效的新Test.java。

Test.java     
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN")
@SequenceGenerator(name = "SEQ_GEN", sequenceName = "TEST_SEQ", allocationSize = 1)
private long id;
private String name;

我的一个老课程适用于H2而不适用于Oracle。

 Abc.java
 @Entity
 @JsonInclude(JsonInclude.Include.NON_EMPTY)
 public class SampleRule 
 {

@ManyToOne(cascade = CascadeType.DETACH)
@RestResource(exported = false)
private Test test;

甚至Abc.java类也没有在Oracle中创建,而是在H2中创建。

  1. 为什么使用导入脚本不会创建很少的表?但是当我使用H2时它们被创建了,但是在Oracle中它们不是。

  2. 何时使用@Table和@Column注释?如果我使用Oracle,那么我需要使用这些注释吗? 。因为即使没有这些注释,我的Test.java类也被创建并保存到Oracle数据库中。我也能够检索它。但是当我尝试检索它时,其他表会抛出错误。

  3. 谢谢!

0 个答案:

没有答案