Java 当我使用ddl auto=create时,其中一个表不是由JPA/hibernate生成的
我已经设置了Java 当我使用ddl auto=create时,其中一个表不是由JPA/hibernate生成的,java,hibernate,jpa,Java,Hibernate,Jpa,我已经设置了spring.jpa.hibernate.ddl auto=createset,我的大多数表正在生成中。一个不是!我知道这一定是愚蠢的事情,我希望这足够普遍,有人会认识到这个问题 以下是未创建其表的实体(没有导入) 问题是一个保留字。控制台错误只是在尝试创建image_size表(缺少的表)之后说了“invalid identifier”。我将image_size表中的一个字段从“size”更改为“imageSize”,解决了这个问题。日志中是否有错误,或者只是没有创建?是的,控制台
spring.jpa.hibernate.ddl auto=create
set,我的大多数表正在生成中。一个不是!我知道这一定是愚蠢的事情,我希望这足够普遍,有人会认识到这个问题
以下是未创建其表的实体(没有导入)
问题是一个保留字。控制台错误只是在尝试创建image_size表(缺少的表)之后说了“invalid identifier”。我将image_size表中的一个字段从“size”更改为“imageSize”,解决了这个问题。日志中是否有错误,或者只是没有创建?是的,控制台中有错误。我完全错过了。我想问题是一个保留字。控制台错误只是说“无效标识符”,但从“大小”(实际上是“大小”;双重错误)更改为“imageSize”修复了问题。谢谢考虑将您的解决方案作为未来引用的答案。
@Entity
@Data
@NoArgsConstructor
public class ImageSize {
@Id
@SequenceGenerator(name = "imagesizeseq", sequenceName = "IMAGE_SIZE_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "imagesizeseq")
private Integer imageSizeId;
private String Size;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "imageSize")
private List<ImageData> imageDatas;
}
@Entity
@Data
@NoArgsConstructor
public class ImageData {
@Id
@SequenceGenerator(name = "imagedataseq", sequenceName = "IMAGE_DATA_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "imagedataseq")
private Integer imageDataId;
@Lob
private byte[] imageData; //TODO: make this java.sql.Blob rather than byte[]; see p 101 in hibernate bk
@ManyToOne
@JoinColumn(name = "IMAGE_SIZE_ID")
private ImageSize imageSize;
@ManyToOne
@JoinColumn(name = "IMAGE_ID")
private Image image;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MIME_TYPE_ID")
private MimeType mimeType;
}