Java 为什么找不到列
我有以下问题 原因:org.h2.jdbc.JdbcSQLSyntaxErrorException:Kolumna “在”nie istnieje列“创建在”未找到;SQL 语句:插入taco(id、创建位置、名称)值(null、、?) [42122-200] 但在h2控制台中,列是存在的 我有以下schema.sql代码Java 为什么找不到列,java,hibernate,jpa,h2,Java,Hibernate,Jpa,H2,我有以下问题 原因:org.h2.jdbc.JdbcSQLSyntaxErrorException:Kolumna “在”nie istnieje列“创建在”未找到;SQL 语句:插入taco(id、创建位置、名称)值(null、、?) [42122-200] 但在h2控制台中,列是存在的 我有以下schema.sql代码 create table if not exists Taco( id identity, name varchar(50) not null, createdAt tim
create table if not exists Taco(
id identity,
name varchar(50) not null,
createdAt timestamp not null
);
和域
package my.taco.models;
import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
@Data
@Entity
public class Taco {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Size(min=5,message = "Nazwa musi składać się z przynajmniej pięciu znaków")
private String name;
private Date createdAt;
@ManyToMany(targetEntity = Ingredient.class)
@Size(min=1,message = "Musisz wybrac przynajmniej jeden składnik")
private List<Ingredient> ingredients;
@PrePersist
void createdAt(){
this.createdAt=new Date();
}
}
打包my.taco.models;
导入龙目数据;
导入javax.persistence.*;
导入javax.validation.constraints.NotNull;
导入javax.validation.constraints.Size;
导入java.util.Date;
导入java.util.List;
@资料
@实体
公营塔可{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
@NotNull
@大小(最小值=5,message=“Nazwa musi składaćsięz przynajmniej pięciu znaków”)
私有字符串名称;
私人日期创建日期;
@ManyToMany(targetEntity=Component.class)
@大小(最小值=1,message=“Musisz wybrac przynajmniej jeden składnik”)
私人成分清单;
@预科生
void createdAt(){
this.createdAt=新日期();
}
}
那么怎么了?Hibernate猜测的默认列名(基于属性名)是
CREATED\u AT
,而您的列名是CREATEDAT
您可以重命名数据库中的列(推荐使用,因为它更标准),也可以指定要休眠的列名,如下所示:
@Column(name="CREATEDAT")
private Date createdAt;
天哪,非常感谢兄弟!;)