• Spring Data JPA的低级错误


     1 //课程表
     2 @Entity
     3 public class Class {
     4     @GeneratedValue(strategy = GenerationType.AUTO)
     5     @Id
     6     private Long classID;// 课程编号             varchar(20) not null,
     7     private String className;// 课程名称          varchar(50),
     8     @Temporal(TemporalType.DATE)//(精确到年月日)
     9     private Date beginTime;//  开始时间         date,
    10     @Temporal(TemporalType.DATE)//(精确到年月日)
    11     private Date endTime;//结束时间             date,
    12     private String classInfo;// 课程简介          text,
    13     private double price;// 价格               numeric,
    14     private int times;// 课时数               integer,
    15     private int classMan;// 课程人数            int,
    16 
    17     @ManyToOne(cascade = CascadeType.ALL)
    18     private Teacher teacher;//主教练         varchar(20),
    19 
    20 
    21     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "class_")
    22     private List<Lesson> lessons;
    23 //...省略getter和setter方法

     1 public interface ClassRepository extends JpaRepository<Class,Long> {
     2 
     3     @Query(value = "SELECT * FROM class WHERE classid=:ID",nativeQuery = true)
     4     Class findClassByID(@Param("ID")Long ID);
     5 
     6     @Modifying
     7     @Transactional
     8     @Query(value = "UPDATE class SET times=:times WHERE classid=:classid",nativeQuery = true)
     9     void updateClassTimes(@Param("times")int times,@Param("classid") Long classid);
    10 
    11 
    12     @Query(value = "  select * FROM class where  DATE_FORMAT(begin_time,'%Y%m%d') >=NOW()",nativeQuery = true)
    13     List<Class> findClassByAfter();
    14 
    15     @Query(value = "  select * FROM class where  DATE_FORMAT(begin_time,'%Y%m%d') <NOW()",nativeQuery = true)
    16     List<Class> findClassByBefore();
    17 
    18     Page<Class> findByBeginTimeBefore(Date date,Pageable pageable);
    19 
    20 }

    如果实体类里面属性名开头用大写字母,

    在JPA中就不能通过查询的方法名和参数名来自动构造一个JPA OQL查询,

    如18行的方法不能通过编译,

    控制台会提示找不到该属性名,

    千万告诫自己编码一定要规范。

  • 相关阅读:
    linux环境下安装redis扩展
    LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)
    Linux环境下网卡配置
    MAC 下虚拟主机的配置
    从json_encode过来的的字符串被返回到html页面时的解析
    for循环绑定事件,闭包思想!
    js8月-4号,,思想
    三种添加事件的方式
    smarty第一天
    5秒钟后自动跳转!!!!
  • 原文地址:https://www.cnblogs.com/zhu573514187/p/9418691.html
Copyright © 2020-2023  润新知