2015-09-08 70 views
0

我编写了这个API来获得YoutubeAPI v3的一些细节并将其发布到数据库。关键字'statistics'附近的语法不正确。 Spring.IO

目前我有,当我创建一个表这个错误:

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'. 

和我几乎没有留下的头发在我的头上,因为我无法找到问题。

我有这三个类来检索每个对象。 VideoDetailsContent:

@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; 
    } 
} 

VideoStatistics:

@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; 
    } 
} 

这些API的输出是:

{ 
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" 
} 
} 
] 
} 

为什么恶魔般的,我是getti ng这个错误?

回答

1

我在编写代码的时候遇到了难题。

所以我通过重构VideoStatistics类来解决这个问题。

将所有输入设置为String而不是Long,因为我从Youtube API获得了一个字符串。

相关问题