【发布时间】:2018-07-22 22:03:45
【问题描述】:
我正在将在 Websphere 中运行的 Spring Boot 1.2.4 迁移到 Spring Boot 1.5.9。此应用程序使用带有 Hibernate 的 Spring Data JPA。迁移后,其中一种保存方法无法按预期工作。当我尝试在表中插入新行时,出现 SQLCODE=-204、SQLSTATE=42704 的异常,但相同的代码在 Spring Boot 1.2.4 上运行良好。
我的 Pom.xml 如下所示。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Spring Boot 1.2.4 配置如下所示。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.10.Final</version>
</dependency>
@Repository
public interface MyDataRepository extends CurdRepository<MyEntity,Long>{}
@Service
public class MyDataService{
@Autowired
private MyDataRepository myDataRepository;
public void insertMyDate(MyData myData){
myDataRepository.save(myData)
}
}
@Entity
@Table(name="MYDATA" ,schema="MYSCHEMA")
public class MyData implements java.io.Serializable {
private int memberId;
private String firstName;
private String lastName;
private Date dateofBirth;
@GeneratedValue(strategy=GenerationType.AUTO)
@Id
@Column(name="MEMBER_ID",uniqueue=true,nullable=false)
public int getMemberId(){
return this.memberId;
}
public void setMemberId(int memberId){
return this.memberId = memberId;
}
//Geter and Setters
}
在 1.5.9 中执行保存方法时使用相同的代码得到以下异常。
无法提取结果集; SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException: could not extract ResultSet
【问题讨论】:
-
如果你不分享一些代码很难提供帮助
-
@Pedro 添加了在 Spring Boot 1.2.4 和 Websphere 中工作但在 Spring Boot 1.5.9 中不起作用的示例代码。生成序列时出现异常。
-
您能添加 DDL 吗?
-
尝试启用查询日志以查看生成的查询:logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type=TRACE
-
@GeneratedValue(strategy=GenerationType.AUTO) 如果我更改 @GeneratedValue(strategy=GenerationType.IDENTITY) 则无法生成序列号。
标签: spring-boot spring-data-jpa spring-data