【问题标题】:not able to retrieve object from datebase by passing date无法通过传递日期从数据库中检索对象
【发布时间】:2017-03-13 14:36:07
【问题描述】:

我正在尝试通过传递日期从数据库中检索对象,但它返回 null,即使数据库中具有该日期的对象。任何人都可以帮助我

我的代码:

@RequestMapping("/getavailableslots")
public Object getAvialableSlot(){   
    Date date=new Date();
    List<Dates> dates=repository.findByDate(date);
    return dates;
}

jpa 存储库:

public interface DateReposotory extends JpaRepository<Dates, Integer> {
    Dates findByDate(Date date);
}

实体:

@Entity
public class Dates {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    int id;

    @Column(name="date")
    Date date;

    @Column(name="slots")
    String[] slots;

    @Column(name="month")
    int month;
    //setters and getters goes here
}

我将数据库中的日期保存为

@RequestMapping("/adddates")
public void addDates(){

    String[] slts={"11am","12am","13am","14am"};
    Date date=new Date();
    Dates dates=new Dates();    
    dates.setDate(date);
    dates.setMonth(date.getMonth());
    dates.setSlots(slts);
    dr.save(dates);

}

【问题讨论】:

    标签: hibernate spring-mvc spring-data-jpa


    【解决方案1】:

    你应该用@Temporal(TemporalType.DATE)注释你的实体类的Date date属性,以实现db中的DATE和java.util.Date之间的正确转换。检查this answer

    【讨论】:

      【解决方案2】:

      在实体中声明为:

      @Temporal(TemporalType.DATE)
          private Date date;
      

      传入jpa查询:

      repository.findByDate(new Date("2017/03/14"));
      

      【讨论】:

        猜你喜欢
        • 2020-03-05
        • 2018-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        • 1970-01-01
        • 2019-09-25
        相关资源
        最近更新 更多