• 키워드 : REGEXP

  • 쿼리문 : SELECT * FROM MEMBER WHERE USER_PASSWORD REGEXP '[가-힣]';

> 그래들(Gradle)이란?

-. 빌드를 위한 도구

-. 구글이 그래들을 채택하면서 사용자 증가

 

  • 기존 빌드 시스템과 다른점

  1. 빌드 스크립트가 프로그래밍 언어의 모습을 하고있다.
    -. 자바와 같이 JVM 위에서 동작하는 groovy라는 언어로 작성하게 됨.

  2. 빌드 스크립트가 일률적이지 않다.
    -. DSL(Domain Specific Language:도메인 언어)라는 모습으로 server side의 그레이들 스크립트와 안드로이드를 위한 스크립트의 모습이 전혀 다름.

  3. 다수의 빌드 지원 파일로 구성
    -. settings.gradle / 프로젝트 수준의 build.gradle / 모듈 수준의 build.gradle / gradle.properties / local.properties
    -. 기존의 빌드 시스템인 ant는 build.xml 단일 파일로 구성

 

> 구글이 그레이들을 채택한 이유?

-. 모듈화 개발

-, one source multi APK 실현

-. 라이브러리 의존성 관리

 

 

> 단점

-. 느림

-. 많은 메모리 필요

-. 그레이들로 빌드를 하게 되면 build/폴더가 생기는데 빌드 중간의 생성물을 다량으로 File I/O를 시도 함.

 

 

> cf.Maven의 문제점

-. 프로젝트 구성/빌드 툴로써 프로젝트 구성은 정적인 설정 정보이고 빌드는 동적인 행위인데, 

정적인 데이터를 저장하는데 적합한 XML로 그 내용을 기술하게 함으로써 동적인 행위인 빌드에 큰 제약을 가함.

-. 멀티 프로젝트 구성을 상속 구조로 한 설계상의 문제. (그에 반해 Gradle은 구성 주입 방식(Configuration Injection:설정 주입 방식)을 사용) 

Maven을 사용하면 쓸데없이 설정이 길어지고 중복이 발생하며 가독성 매우 떨어짐.

 

 

> cf. 프레임 워크란?

-. 프레임워크는 라이브러리와 달리 애플리케이션의 틀과 구조를 결정할 뿐 아니라, 그 위에 개발된 개발자의 코드를 제어한다. 프레임워크는 구체적이며 확장 가능한 기반 코드를 가지고 있으며, 설계자가 의도하는 여러 디자인 패턴의 집합으로 구성되어 있다.

  • 이슈

-. 로컬에서 메이븐 패키지를 하는데 아래와 같은 에러 발생

 

 

  • 원인

-. src에 main이 아닌 test 패키지에 테스트 코드 중 어떠한 것에서 에러가 남을 뜻 함.

-. <init> 옆의 클래스에서 에러 발생

 

 

 

  • 해결 

-. pom.xml 에 dependencies 밑에 prifile definition 목록들이 있는데, id가 local인 곳에 

   테스트는 스킵한다는 태그인 <maven.test.skip>ture</maven.test.skip> 을 삽입하여 해결

 

'JAVA' 카테고리의 다른 글

로컬에서 property 읽지 못 함  (0) 2019.04.10

-. 아파치의 스트링유틸스를 쓰고 싶은데 임포트에서 에러남. 메이븐이라면 pom에 의존 추가 할텐데 그레들이라.. 몰랐음. 써치 결과 빌드 그레들 디펜던시에 implementation 'org.apache.commons:commons-lang3:3.6' 추가하여 해결

 

 

-. 아파치 커먼에 validator는 찾아보니 빌드 그레들 디펜던시에 

compile 'commons-validator:commons-validator:1.4.1' 을 추가하여 해결

 

 

  • 여기서 의문은...... 디펜던시에 임플리먼테이션이랑 컴파일의 차이는 뭐고 어떨때 컴파일을 쓰는지.... --> 찾아볼 것!

  • 이슈 

-. 스프링부트 프로젝트에 그레들로 시작 시 런파일이 아래와 같이 비활성 화 됨. 

 

 

  • 시도 목록

-. 설정 - 빌드 - 컴파일 - 어노테이션 프로세서 - 엔에이블 어노테이션 프로세싱 체크

-. 그레들 버전 5.2.1 / 5.1.1 / 3.2.1 세개의 버전으로 실행

-. 설정 - 그레들에서 아래와 같이 세가지 형태로 실행

 

 

  • 해결

-. 인텔리제이 버전이 맞지 않음 (2018.1.4 에서 2018.3.5 로 다시 설치)

  • 아마 이게 스프링부트 버전 업그레이드되면서 실수 줄이게 할라구 오버라이딩 기본값을 false로 바꿔가지고 

  • 그 이후 버전부터는 프로퍼티나 yaml(?)에 따로 설정해줘야 되는 듯....

 

액션 : Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true gradle

  • lombok 플러그인 설치 여부 확인 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

2019-03-29 10:47:13.679 ERROR 34080 --- [           main] o.s.boot.SpringApplication               : Application run failed

 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.example.demo.domain.ShopData

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1762) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at com.example.demo.DemoApplication.main(DemoApplication.java:12) [classes/:na]

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.example.demo.domain.ShopData

    at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:266) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:211) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:778) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:250) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:231) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:274) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1821) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1758) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    ... 15 common frames omitted

 


 

  • 클래스 위에

@NoArgsConstructor(access = AccessLevel.PROTECTED)  어노테이션과

 

필드로

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

 

ID 필드를 추가하여 해결

 

 

  • 참고 답변

https://stackoverflow.com/questions/4381290/hibernate-exception-org-hibernate-annotationexception-no-identifier-specified

 

hibernate exception: org.hibernate.AnnotationException: No identifier specified for entity: com..domain.idea.MAE_MFEView

Why am I getting this exception? package com.domain.idea; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinC...

stackoverflow.com

 

+ Recent posts