2016년 11월 28일 월요일

[자바강의,스프링강의,JPA강의추천_탑크리에듀][Spring JPA교육]1 : 1 단방향, 대상테이블에 외래키(JPA 1.0, JPA2.0),@OneToOne,예문입니다.

[Spring JPA교육]1 : 1 단방향, 대상테이블에 외래키(JPA 1.0, JPA2.0),@OneToOne,예문입니다.

첨부 파일 참조 부탁 드립니다.
감사합니다.

첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=201

[자바강의,스프링강의,JPA강의추천_탑크리에듀][스프링JPA]Querydsl,SQLQueryFactory사용위한메이븐설정,pom.xml

[스프링JPA]Querydsl,SQLQueryFactory사용위한메이븐설정,pom.xml 

 DB스키마 구조대로 자바쪽에 쿼리 타입(Query Type)을 생성해야 하므로 querydsl-maven-plugin 플러그인을 추가해야 하고, Spring Data JPA에서 SQLQueryFactory를 이용하여 Native SQL을 JPA 메소드 기반으로 실행하기 위해 기존 Querydsl 설정에 추가로 querydsl-sql-spring 의존성과 쿼리 타입의 Hibernate Validation을 위해  hibernate-validator 추가해야 한다. 


[pom.xml] 

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>ojc.edu</groupId> 
<artifactId>ojc.nativesql</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>nativesql-exam1</name> 
<description>jpa native sql example</description> 

<parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> 
<version>1.3.3.RELEASE</version> 
<relativePath /> <!-- lookup parent from repository --> 
</parent> 

<properties> 
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
<java.version>1.8</java.version> 
<querydsl.version>4.0.8</querydsl.version> 
</properties> 

<dependencies> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-data-jpa</artifactId> 
</dependency> 

<dependency> 
<groupId>mysql</groupId> 
<artifactId>mysql-connector-java</artifactId> 
<version>5.1.38</version> 
<scope>runtime</scope> 
</dependency> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-test</artifactId> 
<scope>test</scope> 
</dependency> 
<dependency> 
<groupId>com.querydsl</groupId> 
<artifactId>querydsl-jpa</artifactId> 
<version>${querydsl.version}</version> 
</dependency> 
<dependency> 
<groupId>com.querydsl</groupId> 
<artifactId>querydsl-sql-spring</artifactId> 
<version>${querydsl.version}</version> 
</dependency> 
<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate-validator</artifactId> 
</dependency> 
</dependencies> 
<build> 
<plugins> 
<plugin> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-maven-plugin</artifactId> 
</plugin> 
<plugin> 
<groupId>com.querydsl</groupId> 
<artifactId>querydsl-maven-plugin</artifactId> 
<version>${querydsl.version}</version> 
<executions> 
<execution> 
<goals> 
<goal>export</goal> 
</goals> 
</execution> 
</executions> 
<configuration> 
<jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver> <jdbcUrl>jdbc:mysql://localhost/nativesql1?createDatabaseIfNotExist=true</jdbcUrl> 
<jdbcUser>root</jdbcUser> 
<jdbcPassword>1111</jdbcPassword> 
<packageName>jpa.model</packageName> 
<targetFolder>target/generated-sources/java</targetFolder> 
<namePrefix>S</namePrefix> 
<!-- targetFolder에 Dept.java, Emp.java를 생성 --> 
<exportBeans>true</exportBeans> 
</configuration> 
<dependencies> 
<dependency> 
<groupId>mysql</groupId> 
<artifactId>mysql-connector-java</artifactId> 
<version>5.1.38</version> 
<scope>compile</scope> 
</dependency> 
</dependencies> 
</plugin> 
</plugins> 
</build> 
</project>

[자바강의,스프링강의,JPA강의추천_탑크리에듀][Querydsl강좌]스프링부트에서 SQLQueryFactory생성 및 쿼리사용 예문,Querydsl예문

[Querydsl강좌]스프링부트에서 SQLQueryFactory생성 및 쿼리사용 예문,Querydsl예문

예문을 실행하기 전에 이전 강좌를 참조하여 MAVEN을 통해 쿼리 타입을 만들어야 한다.

첨부 파일 참조하세요. 감사합니다.

첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=199

[자바강의,스프링강의,JPA강의추천_탑크리에듀]JPA쿼리강좌(네이티브쿼리,Native Query/SQL),createNativeQuery,JPQL

JPA쿼리강좌(네이티브쿼리,Native Query/SQL),createNativeQuery,JPQL
n  JPA에서 엔티티를 기반으로 JPQL을 직접 작성하거나 또는 SQL 쿼리를 타입 세이프한 방식인 메소드기반 형태로 쿼리를 만들면 JPQL(Java Persistence Query Language)로 변환되고 이것이 JPA 구현체 하이버네이트 같은 것에 의해 SQL문으로 변환되어 DB에서 실행된다.

n  JPA JAVA 영속성 관리를 위한 SQL 작성 표준 API로 JPA에서 지원하는 않고 해당 DB에서만 사용 가능한 쿼리라면 Native SQL을 사용해서 DB에서 사용하는 SQL구문 형식 그대로 쿼리를 작성하면 된다.

n  Native SQL을 사용하는 방법은 간단하다. EntityManager의 createNativeQuery() 메소드를 이용하거나 Spring Data JPA를 사용한다면 @Query nativeQuery=true 라고 하면 DB에서 사용하는 SQL 구문을 직접 사용할 수 있다.

첨부 파일 참조 하세요~

감사합니다.

첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=198

[자바강의,스프링강의,JPA강의추천_탑크리에듀][Querydsl교육강좌]SQLQueryFactory 및 쿼리타입생성을 위한 메이븐설정/MySQL,마리아DB/querydsl-maven-plugin

[Querydsl교육강좌]SQLQueryFactory 및 쿼리타입생성을 위한 메이븐설정/MySQL,마리아DB/querydsl-maven-plugin

n  SQLQueryFactory는 자바쪽에 엔티티를 생성하지 않은 상태에서 DB에 질의 하기 위해 사용하는데, JPA의 메소드 기반으로 DB에 쿼리 할 수 있다그렇게 하기 위해 DB 스키마와 같은 쿼리 타입(Query Type)을 자바단에 만들어 두어야 하는데 그 과정을 Code Generation(코드 제너레이션이라고 한다.

n  메이븐을 통해 쿼리 타입을 생성하고, Spring Data JPA에서 메소드 기반으로 타입 세이프하게 DB에 쿼리하기 위해서는 메이븐 설정에 querydsl-sql 또는 querydsl-sql-spring(스프링에서 사용하는 경우의존성을 추가하고 querydsl-maven-plugin을 이용하여 DB스키마 구조대로 쿼리를 위한 쿼리타입 클래스(QXXX)를 만들 수 있다.

n  SQL문을 DB에서 직접 사용하는 SQL구문으로 만들어 네이티브 쿼리(Native Query)로 실행한다면 쿼리를 SQL 문자열로 만들어야 한다이 경우 쿼리 디버깅과 구문오류오타등 예기치 않은 오류가 발생할 가능성이 크다. SQLQueryFactory을 이용하면 기존 Native SQL 형태로 SQL구문을 사용하던 부분을 JPA 메소드 기반 형식으로 일부 사용할 수 있을 것이다.

첨부 파일 참조 하세요~
감사합니다.

첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=197

[자바강의,스프링강의,JPA강의추천_탑크리에듀][JPA교육,강좌]Querydsl4.X JPAQuery, JPAQueryFactory메이븐설정 및 사용방법예문입니다.

[JPA교육,강좌]Querydsl4.X JPAQuery, JPAQueryFactory메이븐설정 및 사용방법예문입니다.

첨부 파일 참조하세요.
감사합니다.

첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=196

[자바강의,스프링강의,JPA강의추천_탑크리에듀][스프링JPA기초실습예제]QueryDSL4.0.8,기본쿼리,서브쿼리,조인,페이징

[스프링JPA기초실습예제]QueryDSL4.0.8,기본쿼리,서브쿼리,조인,페이징@Query,NamedQuery실습,PageRequest,JPAQuery,JPAExpressions,limit,fetch,exists,innerJoin,JPAUpdateClause,JPADeleteClause,orderBy 

첨부 파일 참조하세요. 

Spring Boot, Spring Data JPA, Spring WEB MVC, QueryDSL @NamedQuery, @Query, 메소드 이름으로 쿼리생성(Query Method), 페이징처리, 서브쿼리, 조인 기본 예제를 마리아DB를 이용하여 작성해 보자. 

QueryDSL  MAVEN 설정은 아래 URL에서 참조 
http://ojc.asia/bbs/board.php?bo_table=LecSpring&wr_id=543 

마리아 DB 설치는 다음 URL 참조 
http://ojc.asia/bbs/board.php?bo_table=LecSpring&wr_id=524 

롬복(Lombok)설치는 다음 URL 참조 
http://ojc.asia/bbs/board.php?bo_table=LecSpring&wr_id=561 

감사합니다.

첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=195