使用 if 条件限制数据库中的行的问题

Problems with limiting rows in database with if condition

我正在尝试将我的数据库限制为仅存储 10 瓶啤酒...我尝试使用如下 if 语句:

for (int i=0; i<beers.length; i++) {
        if (beers.length != 0)
            beerRepository.save(beers[i]);
        else if (beers.length == 10)
            throw new RuntimeException("Database full!");
    }

但由于某些原因它不起作用。我仍然可以在数据库中存储 10 多种啤酒。对我错的地方有什么建议吗?

您的 if...else if 陈述不正确。即使 beers.length 为 10,您的第一个 if 语句也会执行,因为您只是检查 beers.length 是否为非零。所以啤酒一直坚持。

您的意图仍然很模糊,但是如果您想在 for 循环中使用一些代码来保存 beers 数组的前 10 条啤酒记录,则可以是:

for (int i=0; i<10; i++) {
    beerRepository.save(beers[i]); 
}

如果您想检查您的数据库是否已经保存了 10 条啤酒记录,您可以通过以下方式询问您的 repo:

beerRepository.count();

您可以在 for 循环之前使用它来检查数据库是否已满。 例如

if (beerRepository.count() >= 10) {
    throw new RuntimeException("Database full!");
} else {
    for (int i=0; i<10; i++) {
       beerRepository.save(beers[i]); 
    }
}