2022 Tutorial Project for course "Object-Oriented Analysis and Design“ and "JavaEE Platform Technologies"
2022-11-03:[API 1.2.0版](https://app.swaggerhub.com/apis/mingqcn/OOMALL/1.2.0#/) 2022年第一版API
2022-11-09:[API 1.2.1版](https://app.swaggerhub.com/apis/mingqcn/OOMALL/1.2.1#/) 2022年第二版API
2022-11-21:[API 1.2.2版](https://app.swaggerhub.com/apis/mingqcn/OOMALL/1.2.2#/) 2022年第三版API
2022-11-27:[API 1.2.3版](https://app.swaggerhub.com/apis/mingqcn/OOMALL/1.2.3#/) 2022年第四版API
系统每4个小时会自动进行一次单元测试,这是最近一次[测试结果](http://121.36.2.235/unit-test/latest/)和[历史测试结果](http://121.36.2.235/unit-test/)
所有module都依赖于core模块,先要将core安装到maven的本地仓库,才能编译运行其他模块。方法如下:
1. 首先将oomall下的pom.xml文件中除·core·以外的module注释掉,
2. 在maven的中跑install phase,将core和oomall安装到maven的本地仓库
3. 将oomall下的pom.xml文件中注释掉的部分修改回来
4. 编译打包其他部分
5. 以后修改了core的代码,只需要单独install core到maven本地仓库,无需重复上述步骤
参考 Spring JPA的命名规范
Keyword | Sample | JPQL snippet |
---|---|---|
And | findByLastnameAndFirstname | … where x.lastname = ?1 and x.firstname = ?2 |
Or | findByLastnameOrFirstname | … where x.lastname = ?1 or x.firstname = ?2 |
Is,Equals | findByFirstname, findByFirstnameIs, findByFirstnameEquals | … where x.firstname = ?1 |
Between | findByStartDateBetween | … where x.startDate between ?1 and ?2 |
LessThan | findByAgeLessThan | … where x.age < ?1 |
LessThanEqual | findByAgeLessThanEqual | … where x.age <= ?1 |
GreaterThan | findByAgeGreaterThan | … where x.age > ?1 |
GreaterThanEqual | findByAgeGreaterThanEqual | … where x.age >= ?1 |
After | findByStartDateAfter | … where x.startDate > ?1 |
Before | findByStartDateBefore | … where x.startDate < ?1 |
IsNull | findByAgeIsNull | … where x.age is null |
IsNotNull,NotNull | findByAge(Is)NotNull | … where x.age not null |
Like | findByFirstnameLike | … where x.firstname like ?1 |
NotLike | findByFirstnameNotLike | … where x.firstname not like ?1 |
StartingWith | findByFirstnameStartingWith | … where x.firstname like ?1(parameter bound with appended %) |
EndingWith | findByFirstnameEndingWith | … where x.firstname like ?1(parameter bound with prepended %) |
Containing | findByFirstnameContaining | … where x.firstname like ?1(parameter bound wrapped in %) |
OrderBy | findByAgeOrderByLastnameDesc | … where x.age = ?1 order by x.lastname desc |
Not | findByLastnameNot | … where x.lastname <> ?1 |
In | findByAgeIn(Collection<Age> ages) | … where x.age in ?1 |
NotIn | findByAgeNotIn(Collection<Age> ages) | … where x.age not in ?1 |
True | findByActiveTrue() | … where x.active = true |
False | findByActiveFalse() | … where x.active = false |
IgnoreCase | findByFirstnameIgnoreCase | … where UPPER(x.firstame) = UPPER(?1) |