【问题标题】:How to use predefined Strings inside Room Database query?如何在房间数据库查询中使用预定义的字符串?
【发布时间】:2019-04-10 21:54:40
【问题描述】:

是否可以在房间查询中使用预定义的字符串?例如:

@Query("delete from Bookmarks where listName != Constants.SOME_LIST_NAME")
void deleteAllBookmarks();

为了清楚起见,我不想将它作为参数传递:

@Query("delete from Bookmarks where listName != :listName")
void deleteAllBookmarks(String listName);

我不想硬编码它(它在不止一个地方使用):

@Query("delete from Bookmarks where listName != 'MyList'")
void deleteAllBookmarks();

【问题讨论】:

    标签: java android sqlite android-room


    【解决方案1】:

    不确定是否支持,有人可能会证明我错了,但在那之前......你知道......

    假设 SOME_LIST_NAME = "MyList" 那么你可以这样做:

    @Query("delete from Bookmarks where listName != MyList")
    void deleteAllBookmarks();
    

    【讨论】:

    • By " 而且我不想硬编码(它在多个地方使用)" 我的意思是我不想那样做你写了。由于我在多个地方使用该列表名称,我不想到处复制那个硬编码的“MyList”。
    • 我知道这不是您想要的,但是假设您在 那个 很多地方都没有它,那么即使花一个小时在这上面也很浪费 imo。但希望有人能来这里证明这是可能的。 :)
    • 那样看起来不干净。这很容易出错,如果您决定更改列表名称,则必须在任何地方进行更改。无论如何,谢谢你的建议:)
    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2022-09-27
    相关资源
    最近更新 更多