2015-09-08 133 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獲得了一個字符串。

相關問題