Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取MIN(日期)。使用DAO查询?_Java_Android Studio_Android Sqlite_Android Room_Dao - Fatal编程技术网

Java 如何获取MIN(日期)。使用DAO查询?

Java 如何获取MIN(日期)。使用DAO查询?,java,android-studio,android-sqlite,android-room,dao,Java,Android Studio,Android Sqlite,Android Room,Dao,我不熟悉安卓房间数据库。 我看到在这个话题上也有类似的问题,但我真的不明白到底是什么对这个话题起作用。 所以,这里我试图从表中获取第一个日期,但是当我用它进行查询时 @Query("select min(date) from user_items where userId = :userId ") long getFirstDate(long userId); 我得到的结果是因为最短日期是01/01/1970 但是我希望表中的第一个日期显示给用户 我的实体类User.java: @Entity

我不熟悉安卓房间数据库。 我看到在这个话题上也有类似的问题,但我真的不明白到底是什么对这个话题起作用。 所以,这里我试图从表中获取第一个日期,但是当我用它进行查询时

@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
}
@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
}
我的另一个实体与
用户
表有关系

UserItem.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
}
@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)
函数之外,我的其他所有查询都运行良好


查询返回UNIX纪元的开始(1970年1月1日),这表明您可能在其中一行的日期列中保留(或试图保留)了无效值。您可能希望检查date列中是否存在任何可疑值。

查询返回UNIX纪元的开始(1970年1月1日),这表明您可能已在其中一行的date列中保留(或试图保留)了无效值。您可能需要检查日期列中是否存在任何可疑值。

最后我得到了解决方案: 我在这里更改我的查询
与此相反:

@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 因此,如果我想将字符串存储到
long
类型中,那么它是不允许的


希望它能帮助你。

最后我得到了解决方案: 我在这里更改我的查询
与此相反:

@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 因此,如果我想将字符串存储到
long
类型中,那么它是不允许的

希望它能帮助你