#Spring Dao Libray for easy using JPA
SD4J is a easy way to using JPA in spring framework.
<dependency>
<groupId>com.github.kentyeh</groupId>
<artifactId>sd4j</artifactId>
<version>1.0.1</version>
</dependency>
or download from maven site
<!-- processing @Dao and @DaoManager-->
<bean class="springdao.DaoAnnotationBeanPostProcessor"/>
or
@Configuration
public class ApplicationContext{
@Bean
public DaoAnnotationBeanPostProcessor daoAnnotationBeanPostProce() {
return new DaoAnnotationBeanPostProcessor();
}
}
public String App(){
// Where Phone is a jpa entity
@DaoManager(Phone.class)
private RepositoryManager<Phone> phoneManager;
public List<Phone> findOrphanPhones(){
return phoneManager.findByCriteria(JpqlHelper.get().where("owner").isNull().ql());
}
}
@Transactional(readOnly = true)
public class CustomManager<E> extends RepositoryManager<E>{
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void busiMethod(...){
....bla bla
}
}
public String App(){
@DaoManager
private CustomManager<Phone> phoneManager;
public void doSomething(){
phoneManager.busiMethod();
... bla bla
}
}
Other example look TestDao4j.java.
Spring web mvc help type conversion.
for example: convert primitive String or int to jpa entity.
import springdao.DaoManager;
import springdao.RepositoryManager;
import springdao.support.DaoPropertyEditor;
@Controller
public class WebController {
@DaoManager
private RepositoryManager<Member> memberManager;
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Member.class, new DaoPropertyEditor(memberManager));
}
@RequestMapping("/admin/user/{account}")
public String userinfo(@PathVariable Member account, HttpServletRequest request) {
account....;
}
}
When I access http://localhost/admin/user/kent , It will convert account name: "kent" to Member Object.