1. concat 사용
concat('http://', a.example1, '/', a.example2, '/', a.example3, '/abc.com')
to
Expressions.asString("http://").concat(QEntity.example1).concat(".").concat("abc)
.concat("/").concat(QEntity.example2).concat("/").concat(QEntity.example3).concat("/abc.com").as("url")
- 보통 Qentity.example.concat("/").. 이런식으로 했는데 첫단어부터 상수를 써야되서 난감했다. 하지만 갓오버플로우로 해결!!
2. Expression.numberTemplate
select unix_timestamp() from dual;
to
Expressions.numberTemplate(Long.class, "UNIX_TIMESTAMP()").as("now_time")
- Expression.stringTemplate 예제는 많은데 다른건 거의 없더라
3. Expressions.timeTemplate
SELECT sec_to_time(second) FROM table1;
to
Expressions.timeTemplate(Time.class, "SEC_TO_TIME({0})", alistVO.second).as("second")
- SEC_TO_TIME은 초를 Time(시:분:초) 형식으로 바꿔주는 MySQL 함수다.
4. 엔티티 생성 후 DB 저장
@Repository
public class ProfileDataRepository extends QuerydslRepositorySupport {
private JPAQueryFactory queryFactory;
QCms_profileVO profileVO = QCms_profileVO.cms_profileVO;
public ProfileDataRepository() {
super(ProfileDataRepository.class);
}
@Override
// 마이바티스+Jpa 관련 config 생성(트랜잭션 공유)
@PersistenceContext(unitName = "contentsEntityManagerFactory")
public void setEntityManager(EntityManager entityManager) {
super.setEntityManager(entityManager);
this.queryFactory = new JPAQueryFactory(entityManager);
}
public boolean addDB( Entity entity ) {
super.getEntityManager().persist( entity );
return super.getEntityManager().contains(entity);
}
- EntityManager를 받아서 persiste()나 merge를 사용해서 저장
- 듣기론 save()를 사용하는것보단 직접 컨트롤하는게 좋다카더라
- persist()는 void를 반환하기 때문에 Service단에서 예외처리를 위해 contains()으로 포함여부를 boolean값으로 반환
5. group_concat 사용법
https://blog.leocat.kr/notes/2020/08/16/hibernate-use-databse-function
[Hibernate] DB 함수 사용하기
문제
blog.leocat.kr
+
spring:
jpa:
database-platform: com.emlabs.vodtolive.config.MysqlCustomDialect
application.yml에 추가
(Mysql to Querydsl) or Querydsl 사용하면서 느낀점
Querydsl로 안되는 복잡한 쿼리(인라인 절 등)를 사용할 수 밖에 없는건 MyBatis가 짱.
https://kwonnam.pe.kr/wiki/java/querydsl
java:querydsl [권남]
kwonnam.pe.kr
참고
1. concat 사용
https://stackoverflow.com/questions/36903669/like-and-concat-in-querydsl