Как получить МИН (дата). используя запрос DAO? - PullRequest
1 голос
/ 30 марта 2020

Я новичок в Android База данных номеров. Я видел там похожие вопросы по этой топи c, но я действительно не понимал, что на самом деле работает для этой топи c. Итак, здесь я пытаюсь получить первое свидание из таблицы, но пока я запрашиваю с этим

@Query("select min(date) from user_items where userId = :userId ")
long getFirstDate(long userId);

, я получил результат, так как минимальная дата равна 01/01/1970 Но я хочу, чтобы первая дата из таблицы показывала пользователя.

Мой класс сущностей User.java:

@Entity(tableName = "users")
public class User {
    @PrimaryKey(autoGenerate = true)
    private int id;
    private String name;
    private String email;
    private String password;
    private String securityAnswer;

// other staff here
}

Моя другая сущность связана с User таблицей.

UserItem.java:

@Entity(tableName = "user_items", indices = {@Index("userId")}, foreignKeys = @ForeignKey(entity = User.class,
        parentColumns = "id",
        childColumns = "userId",
        onDelete = CASCADE))
public class UserItems {
    @PrimaryKey(autoGenerate = true)
    private int id;
    private String category;
    private String amount;
    private String date;

    @ColumnInfo(name = "userId")
    private int userId;


// setter and getter
}

Мой другой весь запрос работал нормально, кроме функции min(date).

Это моя сущность, я хочу первую дату, как я отметил, показать пользователю

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Наконец-то я получил решение: Здесь я меняю свой запрос Вместо этого:

@Query("select min(date) from user_items where userId = :userId ")
long getFirstDate(long userId);

Используйте это:

@Query("select min(date) from user_items where userId = :userId ")
String getFirstDate(long userId);

Потому что, если вы посмотрите мой класс UserItem.java, здесь я храню данные как String , поэтому, если я хочу сохранить String с типом long, это не разрешено .

Надеюсь, это поможет вам.

0 голосов
/ 01 апреля 2020

Запрос возвращает начало эпохи UNIX (01.01.1970), которая указывает на то, что вы могли сохранить (или попытались сохранить) недопустимое значение в столбце даты для одной из ваших строк. Возможно, вы захотите проверить наличие подозрительных значений в столбце даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...