小编use*_*862的帖子

如何使用 LocalDate 值查询 JPA LocalDateTime 字段?

我寻找一种方法来获取在 Postgresql 数据库中 TIMESTAMPTZ 类型的字段中保存的某个 LocalDateTime 日期上创建的对象列表。

为此,我尝试使用 JpaRepository:

List<Object> findByCreationDate(LocalDate date);
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

java.lang.IllegalArgumentException: Parameter value [2020-12-12] did not match expected type [java.time.LocalDateTime (n/a)]
Run Code Online (Sandbox Code Playgroud)

我也尝试用相同的结果自己编写查询。

到目前为止我想到的解决方案:

  1. 在 Java 中获取所有对象和过滤器(但我不想去那里,所以不)

  2. 在 LocalDateTime 中转换 LocalDate 参数(但我假设在这种情况下我只会看到在同一时间创建的对象,所以不会。只有当我确定时间字段是午夜时,我才会考虑这个选项)。

  3. 创建一个方法findByCreationDateBetween(LocalDateTime startOfTheDay, LocalDateTime endOfTheDay)(有趣的选项,但我想在不修改 LocalDate 并在一天开始和结束时将其转换为 LocalDateTime 的情况下进行查询。)

我还试图找到一些能够在查询中“转换”LocalDate 中的 LocalDateTime 或比较 LocalDate 和 LocalDateTime 的年、月和日的函数,但没有成功。creationDate 的类型应保持 LocalDateTime 和 TIMESTAMPTZ 类型的数据库字段。

是否还有其他 Jpa @Query 替代方案,总体而言,这种情况下的最佳方法是什么?

java jpa spring-data-jpa java-time spring-repositories

6
推荐指数
3
解决办法
1万
查看次数

在Java中从JButton拖放到JComponent

我在互联网上搜索了如何将JButton拖放到对象的示例,但我无法使其工作.

我的程序所做的是,当我单击一个按钮时,该对象更新了一个字段(带有selectedobject.setField()).我希望能够这样做不是通过点击,而是通过拖动JButton.

我怎样才能做到这一点 ?我找到了这个,我试着输入我的代码:

btn.setTransferHandler(new ImageHandler());
btn.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
      JComponent c = (JComponent)e.getSource();
      TransferHandler handler = c.getTransferHandler();
      handler.exportAsDrag(c, e, TransferHandler.COPY);
            }           
});
Run Code Online (Sandbox Code Playgroud)

我从这里拿了ImageHandler类.

java swing drag-and-drop draggable drag

5
推荐指数
1
解决办法
5963
查看次数