2012-01-13 3 views
1

は、私は、SQLサーバー上でこのテーブルを持っているは、Hibernate

のid int型
  • journal_date日時
  • シーケンスint型
  • 何イムがやろうとし

    • がベースのシーケンスを生成している日付に基づいてシーケンスを追加します日時の値。データベース休止状態のモデルと注釈でこれを行うにはどのように

      | id | journal_date | sequence | 
      -------------------------------- 
      | 1 | 2012-01-01 |  1 | 
      | 2 | 2012-01-01 |  2 | 
      | 3 | 2012-01-02 |  1 | 
      | 4 | 2012-01-01 |  3 | 
      

      例?

    +0

    Iドンを使用してコードでそれを処理するのいずれかの同期で、それを維持するを埋めるために休止状態でこれを行う方法を知りません。しかし、一般的に、これを試すことができます。 'select max(sequence)+1 where journal_date = input_date' – Vaandu

    +0

    そして?どのような問題がありますか?何を試しましたか?あなたの質問は何ですか? –

    +0

    すみません、私は急いでいましたが、これを自動的に休止状態にする方法はありますか?私はモデルで注釈付きの休止状態を使用します。 – ahmy

    答えて

    0

    は、シーケンス列を最初

    UPDATE journaltable t1 SET sequence = 
        (SELECT COUNT (*) FROM journaltable t2 
        WHERE t2.journal_date = t1.journal_date AND t2.id < t1.id); 
    

    UPDATE journaltable t1 SET sequence = 
        (SELECT COUNT (*) FROM journaltable t2 WHERE t2.journal_date = t1.journal_date AND t2.id < t1.id) 
        WHERE t1.id = @newlyInsertedId; 
    

    でトリガを使用するか、休止状態