2016-12-20 4 views
0

私はjpaRepositoryと格納されたメッセージを印刷しようとしていましたが、私はそれを行うことができず、グーグルもそれを知りませんでした:) 私はやってみましたListArrayを使用していますが、そのトリックはありません。 indexにアクセスするときランダムに

@RequestMapping("/") 
@ResponseBody 
public String home() { 

    ArrayList<String> List = new ArrayList(); 
    List.add(msg1.getContent()); 
    List.add(msg.getContent()); 

    Random random = new Random(); 
    int index = random.nextInt(List.size()); 

    return List.get(index); 
} 

だから、私はランダムにどのような配列であり得るが、私はjpaRepositoryでこれを実装する方法を知っているのが大好きだ、私はこれをしませんでした。

@RequestMapping("/") 
@ResponseBody 
public String home() { 

    HelloMessage msg = new HelloMessage(); 
    msg.setContent("Hello"); 
    HelloMessageRepository.save(msg); 

    HelloMessage msg1 = new HelloMessage(); 
    msg1.setContent("World"); 
    helloMessageRepository.save(msg1); 

    return ??; 
} 

ここで問題となるのは、リポジトリ内の文字列をランダムに取得する方法です。親切に助け、感謝します。

+1

「リポジトリ」はJPA APIとは関係ありません。それはSpring Data JPA APIです。タグは –

+0

で固定されていますが、これはどれだけいいですか? thanx :) – rockStar

答えて

0

あなたはこれを使用したいと思っていますが、私は解決策があると思います。

あなたはJpaRepository階層を見れば、あなたはそれがページネーションをサポートしていることを意味しPagingAndSortingRepositoryを実装していることがわかりますので、あなたは、サイズ1のランダムなページを選択するには、以下の行うことができます:誰を想定していない

Random random = new Random(); 
// guard against 0 entities 
int index = random.nextInt((int) helloMessageRepository.count() +1); 
List<HelloMessage> list = helloMessageRepository.findAll(new PageRequest(index, 1)); 
HelloMessage msg = list.getContent().get(0); 

を突然DBからエントリを削除します。このようなものは動作するはずです(コードをテストしていないので、調整が必要な場合があり、DBが空の場合は特別な処理が必要です)。

+0

こんにちは、私はコードを試しましたが、私は 'List 'との互換性の問題を抱えています。ここで私のコードは親切にhttp://pastebin.com/qY6hssf0をチェックしています。答えるために余裕があります。 – rockStar

関連する問題