2016-11-01 12 views
2

Spring Data JPAで時間を(日付なしに)保持する方法は?今私はそれをStringに保持します。たとえば、「10:45」と入力します。しかし、このように時間の間に値を返すことはできません: repository.findTimeBetween(文字列startTime、文字列endTime)Springデータの時間を維持する方法JPA

+0

あなただけの文字列を使用するために探しているか、にLocalTimeまたはUnixタイムスタンプのような何か他のものか、などを使用することができます参照してくださいすることができますか? –

+0

私はjHipsterを使用しており、LocalTimeを許可していません。しかし私はそれを手動で使うことができると思います。 https://jhipster.github.io/jdl/ – Patres

+0

Patres:どのバージョンのJavaを使用していますか?そうでなければjodaタイムライブラリを使用するための制限がありますか?私の例を見てください – developer

答えて

2

時間を文字列としてデータベースに格納する場合は、むしろ数値型として時間値を格納する必要があります。

使用java.time.LocalTime APIとinteger(ビッグint型)などの時間値を格納するデータベースを入力:Java8を使用して

。次に、repository. findByStartDateBetween(time1,time2)を使用できます。

LocalTimeの下の2つのAPIメソッドは、LongからLocalTimeおよびStringからLocalTimeオブジェクトへの変換に役立ちます。

静的にLocalTime ofSecondOfDay(長いsecondOfDay)

二の日の値からにLocalTimeのインスタンスを取得します。

静的にLocalTimeパース(たCharSequenceテキスト)

は、10:15などのテキスト文字列からにLocalTimeのインスタンスを取得します。

あなたはJava8を使用しないAPI here

を参照することができます:あなたはJava8を使用していない場合、あなたはこのためにジョダタイムライブラリを使用することができます

あなたはhere

+0

私は理解しているかわかりません。 @Column(name = "start_time") private LocalTime startTime;このようにIntegerに保持することをお勧めしますか? 私は時間が必要なときに私はLocalTimeに運ばなければなりませんか? – Patres

+1

次のように宣言します。@Column(name = "start_time")private long startTime; – developer

+1

時間が必要なときは、次のようにして取得する必要があります。LocalTime locatime = LocalTime.ofSecondOfDay(startTime);上記のJava8リンクのAPIを参照してください。 – developer

関連する問題