2017-03-19 6 views
1

私は悪いJavaプログラマです... 多分私のデータベースを間違った方法で設計しています。どんな手掛かりも大歓迎です。SpringデータJPA with rest:1対多のマッピングでレコードのサブセットをフィルタリングする方法

今ではこのようなものだ: TABLE1という名前のノードがあります。 ID 情報 更新日時node_recordsという名前

表2はあります ID NODE_ID(ノードへの参照をリバース) 値 は、作成日付

node_record.node_id = node.idとnode_record.create-date = node.update-dateというnode_recordsのすべてのレコードを選択したいとします。 Node.javaで

:NodeRecord.javaで

@OneToMany(targetEntity = NodeRecord.class, mappedBy = "node") 
List<NodeRecord> nodeRecord; 

:今のところ

@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name="id") 
Node node; 

、私はrecord.node_id = node.idすべてのレコードを選択することができますが、私は時間のために検索条件record.creat-date = node.updated-dateも満たすレコードを選択する方法を調べようとしています。

答えて

0

方言はここに助けることができ、データベースの特定の日付関数があります。その特定の方言をサポートする: データベースがmysqlの場合Oracleを使用している場合ので、あなたのクエリに

Query query = session.createQuery("from NodeRecord as nr join nr.node as n where date(nr.createdDate) = date(n.updateDate)"); 

を「日付」機能を使用することができ、あなたのクエリでTRUNC機能を使用することができます。

+1

あなたのクエリは 'Node'のリストを返します。 –

+0

@ v.ladynev、クエリを更新しました。ありがとうございました! –

関連する問題