关键字 'statistics' 附近的语法不正确。 Spring.IO
Incorrect syntax near the keyword 'statistics'. Spring.IO
我正在对这个 API 进行编码,以通过 YoutubeAPI v3 获取一些详细信息并将其 post 到数据库。
目前我在创建 table 时遇到此错误:
2015-09-08 11:22:40.795 ERROR 11384 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000389: Unsuccessful: create table ccccVideoDetailsItems (dbid numeric(19,0) identity not null, etag varchar(255), id varchar(255), kind varchar(255), statistics numeric(19,0), primary key (dbid))
2015-09-08 11:22:40.795 ERROR 11384 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : Incorrect syntax near the keyword 'statistics'.
我头上几乎没有头发了,因为我找不到问题所在。
我有这三个 类 用于检索每个对象。
视频详细内容:
@Entity
@Table(name="ccccVideoDetailsContent")
public class VideoDetailsContent {
@Id
private String kind;
private String etag;
@OneToOne
@Transient
private List<DetailsContentItem> items;
public VideoDetailsContent() {
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public String getEtag() {
return etag;
}
public void setEtag(String etag) {
this.etag = etag;
}
public List<DetailsContentItem> getItems() {
return items;
}
public void setItems(List<DetailsContentItem> items) {
this.items = items;
}
}
DetailsContentItem:
@Entity
@Table(name="ccccVideoDetailsItems")
public class DetailsContentItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "dbid")
private Long dbId;
private String kind;
private String etag;
@Column(name = "id")
private String id;
// @OneToOne(cascade = CascadeType.ALL,orphanRemoval = true)
// @JoinColumn(name = "sID")
@OneToOne
VideoStatistics statistics;
public DetailsContentItem() {
}
public Long getDbId() {
return dbId;
}
public void setDbId(Long dbId) {
this.dbId = dbId;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public String getEtag() {
return etag;
}
public void setEtag(String etag) {
this.etag = etag;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public VideoStatistics getStatistics() {
return statistics;
}
public void setStatistics(VideoStatistics statistics) {
this.statistics = statistics;
}
}
视频统计:
@Entity
@Table(name = "ccccVideoStatistics")
public class VideoStatistics {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
private long viewCount;
private long likeCount;
private long dislikeCount;
private long favoriteCount;
private long commentCount;
public VideoStatistics() {
}
public VideoStatistics(long id, long viewCount, long likeCount, long dislikeCount, long favoriteCount, long commentCount) {
this.id = id;
this.viewCount = viewCount;
this.likeCount = likeCount;
this.dislikeCount = dislikeCount;
this.favoriteCount = favoriteCount;
this.commentCount = commentCount;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getViewCount() {
return viewCount;
}
public void setViewCount(long viewCount) {
this.viewCount = viewCount;
}
public long getLikeCount() {
return likeCount;
}
public void setLikeCount(long likeCount) {
this.likeCount = likeCount;
}
public long getDislikeCount() {
return dislikeCount;
}
public void setDislikeCount(long dislikeCount) {
this.dislikeCount = dislikeCount;
}
public long getFavoriteCount() {
return favoriteCount;
}
public void setFavoriteCount(long favoriteCount) {
this.favoriteCount = favoriteCount;
}
public long getCommentCount() {
return commentCount;
}
public void setCommentCount(long commentCount) {
this.commentCount = commentCount;
}
}
APIs 输出为:
{
kind: "youtube#videoListResponse",
etag: ""sGDdEsjSJ_SnACpEvVQ6MtTzkrI/15jlenwUohs80IG8APFsDfw7xb8"",
pageInfo: {
totalResults: 1,
resultsPerPage: 1
},
items: [
{
kind: "youtube#video",
etag: ""sGDdEsjSJ_SnACpEvVQ6MtTzkrI/sCA7RDne1nKYHc3Fiqawl_oS3sk"",
id: "g_AT2djYGmA",
statistics: {
viewCount: "149353",
likeCount: "2369",
dislikeCount: "21",
favoriteCount: "0",
commentCount: "251"
}
}
]
}
为什么是魔鬼,我收到这个错误了吗?
我写代码的时候脑子有问题。
所以我通过重构 VideoStatistics class.
解决了这个问题
将所有输入设置为 String 而不是 Long,因为我从 Youtube api。
我正在对这个 API 进行编码,以通过 YoutubeAPI v3 获取一些详细信息并将其 post 到数据库。
目前我在创建 table 时遇到此错误:
2015-09-08 11:22:40.795 ERROR 11384 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000389: Unsuccessful: create table ccccVideoDetailsItems (dbid numeric(19,0) identity not null, etag varchar(255), id varchar(255), kind varchar(255), statistics numeric(19,0), primary key (dbid))
2015-09-08 11:22:40.795 ERROR 11384 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : Incorrect syntax near the keyword 'statistics'.
我头上几乎没有头发了,因为我找不到问题所在。
我有这三个 类 用于检索每个对象。 视频详细内容:
@Entity
@Table(name="ccccVideoDetailsContent")
public class VideoDetailsContent {
@Id
private String kind;
private String etag;
@OneToOne
@Transient
private List<DetailsContentItem> items;
public VideoDetailsContent() {
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public String getEtag() {
return etag;
}
public void setEtag(String etag) {
this.etag = etag;
}
public List<DetailsContentItem> getItems() {
return items;
}
public void setItems(List<DetailsContentItem> items) {
this.items = items;
}
}
DetailsContentItem:
@Entity
@Table(name="ccccVideoDetailsItems")
public class DetailsContentItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "dbid")
private Long dbId;
private String kind;
private String etag;
@Column(name = "id")
private String id;
// @OneToOne(cascade = CascadeType.ALL,orphanRemoval = true)
// @JoinColumn(name = "sID")
@OneToOne
VideoStatistics statistics;
public DetailsContentItem() {
}
public Long getDbId() {
return dbId;
}
public void setDbId(Long dbId) {
this.dbId = dbId;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public String getEtag() {
return etag;
}
public void setEtag(String etag) {
this.etag = etag;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public VideoStatistics getStatistics() {
return statistics;
}
public void setStatistics(VideoStatistics statistics) {
this.statistics = statistics;
}
}
视频统计:
@Entity
@Table(name = "ccccVideoStatistics")
public class VideoStatistics {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
private long viewCount;
private long likeCount;
private long dislikeCount;
private long favoriteCount;
private long commentCount;
public VideoStatistics() {
}
public VideoStatistics(long id, long viewCount, long likeCount, long dislikeCount, long favoriteCount, long commentCount) {
this.id = id;
this.viewCount = viewCount;
this.likeCount = likeCount;
this.dislikeCount = dislikeCount;
this.favoriteCount = favoriteCount;
this.commentCount = commentCount;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getViewCount() {
return viewCount;
}
public void setViewCount(long viewCount) {
this.viewCount = viewCount;
}
public long getLikeCount() {
return likeCount;
}
public void setLikeCount(long likeCount) {
this.likeCount = likeCount;
}
public long getDislikeCount() {
return dislikeCount;
}
public void setDislikeCount(long dislikeCount) {
this.dislikeCount = dislikeCount;
}
public long getFavoriteCount() {
return favoriteCount;
}
public void setFavoriteCount(long favoriteCount) {
this.favoriteCount = favoriteCount;
}
public long getCommentCount() {
return commentCount;
}
public void setCommentCount(long commentCount) {
this.commentCount = commentCount;
}
}
APIs 输出为:
{
kind: "youtube#videoListResponse",
etag: ""sGDdEsjSJ_SnACpEvVQ6MtTzkrI/15jlenwUohs80IG8APFsDfw7xb8"",
pageInfo: {
totalResults: 1,
resultsPerPage: 1
},
items: [
{
kind: "youtube#video",
etag: ""sGDdEsjSJ_SnACpEvVQ6MtTzkrI/sCA7RDne1nKYHc3Fiqawl_oS3sk"",
id: "g_AT2djYGmA",
statistics: {
viewCount: "149353",
likeCount: "2369",
dislikeCount: "21",
favoriteCount: "0",
commentCount: "251"
}
}
]
}
为什么是魔鬼,我收到这个错误了吗?
我写代码的时候脑子有问题。
所以我通过重构 VideoStatistics class.
解决了这个问题将所有输入设置为 String 而不是 Long,因为我从 Youtube api。