2017-08-25 30 views
0

私はhybris flexiblesearchで日付を今日の日付と比較する方法が何であるか知りたい。Hybris Flexiblesearch今日の日付

ネットを検索しましたが、見つかりませんでした。任意のヘルプは高く評価され

SELECT {pk} FROM {Product} 
WHERE creationTime < NOW 

:私は今日の日付、このクエリに似多分何かを返す機能のいくつかの並べ替えがあり、今日の前に作成された製品を見つけたいの下flexiblesearchクエリに

+0

、*あなたの質問*特定しそうではないにしてください"何かのような"しかし、実際にあなたが望むもの。また、これまでに何を試みていますか、そしてあなたが直面している問題は何ですか? –

答えて

1

理想的には、現在の日付はjavaでピックアップされ、クエリのためにDBに送信される必要があります。 DBの日付も正常に機能することが確かであれば、

SELECT {pk} FROM {ItemType AS o} WHERE {o.date} <= CURDATE() 

となります。

2

方法はありますが、DB固有の可能性があります。 MySQLのでは、これは正常に動作します:

SELECT {pk} FROM {Order as o} 
WHERE {o.creationTime} < NOW() 

あなたはまた、SYSDATE(で遊ぶことができます)

+0

私はこれを(HACから)5.5.1.0 Hybrisインスタンスで実行しようとしましたが、これはoracleを使用していて動作しません。おそらくそれはDB固有のものです –

+0

SYSDATEまたはSYSDATE()を試すことができます –

+0

ありがとう、これはうまくいくでしょうが、mysqlだけでもっと一般的なものを探しています – Simo

0

私は、このサービスローカルサービスタイムゾーンの補正のためのいくつかの設定ので、timeService豆OOTBを使用することをお勧め。また、すべての日付時刻操作でこのサービスを標準で使用します。クエリをフレックスするためのパラメータとして値を設定できます。

0

あなたのタスクを達成するためにJavaコードを書くことができるかどうかはわかりませんが、Javaを使用すると、日付を渡すために定期的な柔軟な検索パラメータを定義できます。

たとえば、現在の時刻より前に作成された注文をフェッチできるクラスがあります。

import de.hybris.platform.core.model.order.OrderModel; 
import de.hybris.platform.servicelayer.search.FlexibleSearchQuery; 
import de.hybris.platform.servicelayer.search.FlexibleSearchService; 
import de.hybris.platform.servicelayer.search.SearchResult; 
import de.hybris.platform.servicelayer.time.TimeService; 

import javax.annotation.Resource; 
import java.util.List; 

public class SomeOrderDao { 

    @Resource 
    private FlexibleSearchService flexibleSearchService; 
    @Resource 
    private TimeService timeService; 

    public List<OrderModel> findSomeOrders(){ 
     String query = "SELECT {PK} FROM {Order} WHERE {creationtime} < ?date"; 
     final FlexibleSearchQuery getOrdersQuery = new FlexibleSearchQuery(query); 
     getOrdersQuery.addQueryParameter("date", timeService.getCurrentTime()); 
     SearchResult<OrderModel> searchResult = flexibleSearchService.search(getOrdersQuery); 
     return searchResult.getResult(); 
    } 

} 
0

あなたは、たとえば、データベースからネイティブリソースを使用することができます:MySQLの

:Oracleの

SELECT {pk} FROM {Product} 
WHERE creationTime < NOW() 

SELECT {pk} FROM {Product} 
WHERE creationTime < SYSDATE 
関連する問題