查找不在当前行的位置

时间:2019-04-18 09:13:05

标签: java spring-boot spring-data-jpa

我正在开发一个小cms,并且正在使用spring data jpa来完成数据库工作。

当我添加一个新页面时,我想确保该子弹不存在,为此,我向存储库中添加了一个方法:

public interface PageRepository extends JpaRepository<Page, Integer> {

    Page findBySlug(String slug);

}

添加时效果很好。

但是,在编辑页面时,我想检查该子弹是否不存在但当前页面不存在,该怎么办?我想我可以通过某种方式传递当前行ID或类似的东西,但是我该怎么做?

2 个答案:

答案 0 :(得分:2)

你可以写

@Database(entities = {RippleModel.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

public abstract RippleModelDao rippleModelDao();

private static AppDatabase INSTANCE; //Used for the singleton

public static AppDatabase getDatabase(Context context) { //THIS LINE
    if (INSTANCE == null) {
        INSTANCE = Room.databaseBuilder(
                        context,
                        AppDatabase.class, "ripple_db"
                    ).build(); //STACKTRACE SHOWS HERE
    }
    return INSTANCE;
}

,其中id是具有适当类型的实体中标识符的名称。看documentation

答案 1 :(得分:0)

您可以尝试以下自定义查询:

@Query("SELECT CASE WHEN COUNT(c) > 0 THEN true ELSE false END FROM Page p WHERE p.slug = :slug and p.pageId!=pageId")
public boolean existsBySlugInPage(@Param("slug") String slug, @Param("pageId") Integer pageId);