簡體   English   中英

如何比較數據庫中的整數列表? 爪哇

[英]How to compare Lists of Integers in DB? Java

我們有實體:

Class Drink {
Long id;
String name;
List "Integer" ingredients; // We store ingredient's numbers in this list
}

例如:id = 1,name = Mojito,成分 = {5,7,3,8}

比方說,我想根據成分找到一種飲料。 我該怎么做?

  1. 從數據庫中檢索所有雞尾酒並遍歷它們以進行比較?
  2. 還是應該在數據庫中進行比較? 如果這是正確答案,我該怎么做? (如何比較數據庫中的整數列表)?

您很可能希望在數據庫級別過濾數據。 確切的解決方案取決於數據庫結構的類型和您使用的框架,但是由於您使用 PostgreSQL,我假設您有一個關系數據庫結構,並且由於您說的是“實體”,所以我假設您使用類似 Hibernate 的東西或 JPA 與之交互。

那么您的飲料可能不應該將其成分作為數字,而是作為實體來引用。 這就是映射的樣子:

class Drink {

    Long id;

    String name;

    @ManyToMany
    @JoinTable(tableName = "drink_ingredients")
    List<Ingredient> ingredients;
}

class Ingredient {

    Long id;

    String name;
}

然后查找所有包含特定成分的飲料的查詢將是:

Query query = entityManager.createQuery("select d from Drink d " 
    + "join d.ingredients i "
    + "where i.name = :ingredientName");
query.setParameter("ingredientName", "Lime");
List<Drink> drinks = (List<Drink>) query.getResultList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM