Reputation: 103
This works:
@Query("SELECT *FROM users " + " WHERE name1 LIKE :blabla")
List<User> findUsersByName(String blabla);
This works not:
@Query("SELECT *FROM users " + " WHERE name1=blabla")
List<User> findUsersByName(String blabla);
And brings this Error-Message:
"Error:(28, 16) error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such column: blabla)"
I'm thankful for any help.
Here my complete code:
UserDao.java:
@Dao
public interface UserDao {
@Insert
void insert(User user);
@Query("SELECT *FROM users " + " WHERE name1 = blabla")
List<User> findUsersByName(String blabla);
@Query("SELECT *FROM users")
List<User> getAllUsers();
@Query("SELECT COUNT(user_id) FROM users")
int getNumberOfUsers();
@Delete
void delete(User user);
}
MyDatabase.java:
@Database(entities = {User.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase{
public abstract UserDao getUserDao();
}
User.java
@Entity(tableName = "users")
public class User {
@PrimaryKey
@ColumnInfo(name = "user_id")
private int id;
@ColumnInfo(name = "name1")
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public User(int id, String name){
this.id=id;
this.name=name;
}
}
Upvotes: 3
Views: 3372
Reputation: 1007286
Replace:
@Query("SELECT *FROM users " + " WHERE name1 = blabla")
List<User> findUsersByName(String blabla);
with:
@Query("SELECT *FROM users " + " WHERE name1 = :blabla")
List<User> findUsersByName(String blabla);
IOW, you are missing the colon.
Upvotes: 4