我正在开发一个小cms,并且正在使用spring data jpa
来完成数据库工作。
当我添加一个新页面时,我想确保该子弹不存在,为此,我向存储库中添加了一个方法:
public interface PageRepository extends JpaRepository<Page, Integer> {
Page findBySlug(String slug);
}
添加时效果很好。
但是,在编辑页面时,我想检查该子弹是否不存在但当前页面不存在,该怎么办?我想我可以通过某种方式传递当前行ID或类似的东西,但是我该怎么做?
答案 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);