Java 为什么我准备好的语句是由Spring数据和Hibernate生成的;空';?

Java 为什么我准备好的语句是由Spring数据和Hibernate生成的;空';?,java,sql,hibernate,spring-data,teradata,Java,Sql,Hibernate,Spring Data,Teradata,我正在尝试使用SpringDataJPA连接到Teradata,它本身使用的是Hibernate。我可以很好地检索对象,但无法存储它们 我的JPA实体似乎与表的模式兼容(因为我可以成功检索),所以我认为这不是问题所在,但当我调用save时,我收到一条错误消息,该语句无法准备,并且该语句为“null”。它的意思似乎是,表示语句本身的字符串为null,而不是其中某个地方有null值 这就是我试图保存的实体的外观: @实体 @表(name=“Table_name”) 公共类示例数据{ @身份证 @生成

我正在尝试使用SpringDataJPA连接到Teradata,它本身使用的是Hibernate。我可以很好地检索对象,但无法存储它们

我的JPA实体似乎与表的模式兼容(因为我可以成功检索),所以我认为这不是问题所在,但当我调用save时,我收到一条错误消息,该语句无法准备,并且该语句为“null”。它的意思似乎是,表示语句本身的字符串为null,而不是其中某个地方有null值

这就是我试图保存的实体的外观:

@实体
@表(name=“Table_name”)
公共类示例数据{
@身份证
@生成值
@列(name=“ID\u字段”)
长id=null;
@列(name=“FIELD\u A”)
字符串fieldA=null;
@列(name=“FIELD_B”)
字符串字段b=null;
@列(name=“FIELD\u C”)
字符串字段c=null;
//…能手和二传手。。。
}
请注意,如果很重要的话,Java中的表名和字段名都与表中的不同

我正试图这样保存数据:

ExampleData e=newexampledata();
e、 setFieldA(“某些数据”);
e、 setFieldB(“更多数据”);
e、 setFieldC(“嘿,一些数据”);
//这是ExampleDataRepo类型
//这是一个扩展crudepository的接口
//没有明确定义的方法
e=回购保存(e);
我还使用了正确的Teradata方言和驱动程序,设置在我的application.yml中:

spring:
  jpa:
    database-platform: org.hibernate.dialect.TeradataDialect
  datasource:
    driverClassName: com.teradata.jdbc.TeraDriver
但是,每当我尝试运行它时,我都会收到一条异常消息
,原因是:java.sql.SQLException:[Teradata JDBC Driver][TeraJDBC 16.20.00.08][Error 1084][SQLState HY000]无效的sql语句:“null”
,这似乎意味着sql语句甚至没有尝试生成


关于Hibernate和Spring Data/JPA,我认为我所知道的一切都表明这应该是可行的。我遗漏了什么?

我面临着同样的错误,但使用oracle 11g数据库时,我发现的解决方法是禁用事务。您使用的是哪种spring/hibernate版本?我也面临同样的错误,但使用oracle 11g数据库时,我发现的解决方法是禁用事务。您使用的是哪个spring/hibernate版本?