+ @Query("SELECT * FROM accounts WHERE profile_id = :profileId AND name = :accountName")
+ public abstract LiveData<Account> getByName(long profileId, @NonNull String accountName);
+
+ @Query("SELECT name, CASE WHEN name_upper LIKE :term||'%%' THEN 1 " +
+ " WHEN name_upper LIKE '%%:'||:term||'%%' THEN 2 " +
+ " WHEN name_upper LIKE '%% '||:term||'%%' THEN 3 " +
+ " ELSE 9 END AS ordering " + "FROM accounts " +
+ "WHERE profile_id=:profileId AND name_upper LIKE '%%'||:term||'%%' " +
+ "ORDER BY ordering, name_upper, rowid ")
+ public abstract LiveData<List<AccountNameContainer>> lookupInProfileByName(long profileId,
+ @NonNull
+ String term);
+
+ @Query("SELECT name, CASE WHEN name_upper LIKE :term||'%%' THEN 1 " +
+ " WHEN name_upper LIKE '%%:'||:term||'%%' THEN 2 " +
+ " WHEN name_upper LIKE '%% '||:term||'%%' THEN 3 " +
+ " ELSE 9 END AS ordering " + "FROM accounts " +
+ "WHERE profile_id=:profileId AND name_upper LIKE '%%'||:term||'%%' " +
+ "ORDER BY ordering, name_upper, rowid ")
+ public abstract List<AccountNameContainer> lookupInProfileByNameSync(long profileId,
+ @NonNull String term);
+
+ @Query("SELECT DISTINCT name, CASE WHEN name_upper LIKE :term||'%%' THEN 1 " +
+ " WHEN name_upper LIKE '%%:'||:term||'%%' THEN 2 " +
+ " WHEN name_upper LIKE '%% '||:term||'%%' THEN 3 " +
+ " ELSE 9 END AS ordering " + "FROM accounts " +
+ "WHERE name_upper LIKE '%%'||:term||'%%' " + "ORDER BY ordering, name_upper, rowid ")
+ public abstract LiveData<List<AccountNameContainer>> lookupByName(@NonNull String term);
+
+ @Query("SELECT DISTINCT name, CASE WHEN name_upper LIKE :term||'%%' THEN 1 " +
+ " WHEN name_upper LIKE '%%:'||:term||'%%' THEN 2 " +
+ " WHEN name_upper LIKE '%% '||:term||'%%' THEN 3 " +
+ " ELSE 9 END AS ordering " + "FROM accounts " +
+ "WHERE name_upper LIKE '%%'||:term||'%%' " + "ORDER BY ordering, name_upper, rowid ")
+ public abstract List<AccountNameContainer> lookupByNameSync(@NonNull String term);
+
+ static public class AccountNameContainer {
+ @ColumnInfo
+ public String name;
+ @ColumnInfo
+ public int ordering;
+ }