Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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 为什么找不到列_Java_Hibernate_Jpa_H2 - Fatal编程技术网

Java 为什么找不到列

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

我有以下问题

原因: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 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;

天哪,非常感谢兄弟!;)