2017-10-24 8 views
0

私は単純なHQLクエリを読み込み可能な時間フォーマット(HH:MM)に変換しようとしています。正直なところ私はここで紛失しています。次のようにMysqlのTIMEデータ型をJSに変換するDate - Hibernate HQL?

私のテーブル定義(MySQLは)

CREATE TABLE `Concert` (
    `id` INT NOT NULL AUTO_INCREMENT COMMENT 'Concert Id', 
    `stage_id` INT NOT NULL COMMENT 'Stage Id', 
    `concert_time` TIME NOT NULL COMMENT 'Concert Time (HH:MM)', 
    `band_id` INT NOT NULL COMMENT 'Band Id', 
    PRIMARY KEY (`id`), 
    FOREIGN KEY (stage_id) REFERENCES Stage (id), 
    FOREIGN KEY (band_id) REFERENCES Band (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

クラスのモデルである:

public class Concert { 

    private int id; 
    @Temporal(TemporalType.TIMESTAMP) 
    private Timestamp concertTime; 
    private Stage stage; 
    private Band band; 

DAO:

public List<Concert> getConcertsByStageId(int id){ 
     Session session = sessionFactory.getCurrentSession(); 

     Query q = session.createQuery("Select c.id, c.concertTime from Concert c where c.stage.id= :id"); 
     q.setParameter("id", id); 
     List<Concert> concertList = (List<Concert>)q.list(); 
     System.out.println("count: " + concertList.size()); 

     return concertList;  
    } 

私は1508763630000」のようなAJAXを経由して、文字列の出力を取得しています'(つまり、日付の代わりに日付の代わりにDATETIMEを使用すると、出力を変換できませんでした)。 その文字列をJavaScriptのDateオブジェクトに変換したかったので、後でそのビューに表示することができます。

私は、TIME_FORMAT()関数をmysqlで使用できますが、それは私のHQLクエリでは機能しないようです。 JSでこれを達成できる可能性はありますか?または、私の休止状態のクエリに追加する必要があるものは何ですか?

ありがとうございます!

答えて

0

場合は、誰もがここで私はそれを解決するために管理方法を説明します、同様の問題に遭遇:

SQLQuery query = session.createSQLQuery("Select c.id, TIME_FORMAT(c.concert_time, '%H:%i'), c.band_id, " 
       + "b.name, b.band_type, b.set_length, b.encore, b.relevance from Concert c left join Band b on b.id = c.band_id " 
       + "where c.stage_id = :id"); 

     query.setParameter("id", id);  
     List<Object[]> rows = query.list(); 
     List<Concert> concertList = new ArrayList<Concert>(); 

そして、あなたのオブジェクトを構築するために結果行を反復処理:

for(Object[] row : rows){ 

} 
関連する問題