DevEnjoy

One Step Closer

Groovy

Grails domain key 세팅

2015년 1월 19일 by YongPwi Leave a Comment

Gorm(Grails’ object relational mapping)은 Grails에서 구현된 ORM을 이야기 한다.

오픈소스 프로젝트 진행 중에 my-sql과 key mapping에 고생한 내용을 정리한다.

Grails에서 생성한 Domain은 DB에 Table을 생성하지 않아도 application이 올라갈 때

자동으로 DB Table을 생성해준다.

그러나 Grails Domain에서 생성하는 Table의 key는 내부적으로 id라는 컬럼 명으로

생성하여 자체적으로 관리한다.

Domain에 따로 key를 세팅 해야 할 필요가 있을경우는 하단 코드와 같이 설정하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class KeywordList {
    Long keywordListId
    String keywordName
    int keywordCount
    char isDeleted = "N"

    static mapping = {
        version false // 저장 data version 사용 유무
        id name : 'keywordListId' // DB에 생성될 primary key(auto increment)
    }

    static constraints = {
        // 컬럼 제약조건 정의
        keywordName(nullable: false)
        keywordCount(nullable: false)
        keywordType(nullable: false)
        isDeleted(nullable: false)
    }
}
Posted in: Database, Grails, Groovy, MySQL, Programing, Talk Tagged: domain, Grails, key, primary key

grails 기반 my-sql 연동시 gradle plugin 적용

2014년 10월 29일 by YongPwi Leave a Comment

현재 작업중인 grails 프로젝트에 my-sql을 사용하고 있다,,,

grails 기반으로 서버를 띄우고 외부 DB연동까지는 수월하게 작업하였다,,,

그런데 동일한 프로젝트를 Gradle plugin을 사용하여 서버를 띄우니,,,

에러가 작렬,,,

삽질을 어마어마하게 했다,,,

첫번째 문제는 grails 만으로 서버 가동할때에는 domain model 연관관계에,,,

문제가 있어서 서버 동작에는 문제가 없었는데,,,

gradle에서는 그 문제 때문에 고생을 좀 했다,,,

두번째 문제는 gradle로 서버가 올라갈때 발생하는 메모리 문제,,,

하단 첨부 이미지와 같이 VM options로 해결이 될거라 생각했는데,,,
Gradle VM Option

실제 Gradle이 동작할때는 저 옵션이 먹질 않았던 것 같다,,,

Gradle에 대한 사전지식이 없어서 좀더 찾아서 보충해야겠다,,,

그래서 겁나 구글링하여 찾아낸 방법은

build.gradle 설정 추가

1
2
3
4
5
tasks.withType(org.grails.gradle.plugin.tasks.GrailsTask) { Task t ->
    t.jvmOptions {
        jvmArgs "-Xmx512m", "-XX:MaxPermSize=256m"
    }
}

사실 코드는 금방 찾았는데 실제 코드를 붙여넣어보면

Task가 존재하지 않아서 에러 처럼 보여져서 시도하지 않았는데,,,

상위 치럼 메모리 설정을 해주면 Gradle 이 배포할때 저 옵션으로 메모리 설정을 하는듯 싶다,,,

역시 삽질,,,

혹시 필요한 분들이 있을지 몰라 현재 프로젝트의 build.gradle 소스를 남겨둔다,,,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven { url "http://repo.grails.org/grails/repo"}
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:2.1.0"
    }
}

version '0.1'
group 'com.libqna'

apply plugin: 'grails'

repositories {
    mavenCentral()
    grails.central()
    maven { url 'http://repository.jboss.org/maven2/' }
    maven { url 'http://repo.grails.org/grails/repo' }
    maven { url 'http://repo.grails.org/grails/plugins' }
    maven { url 'http://repository.springsource.com/maven/bundles/release' }
    maven { url 'http://repository.springsource.com/maven/bundles/external' }
    maven { url 'http://repository.springsource.com/maven/libraries/release' }
    maven { url 'http://repository.springsource.com/maven/libraries/external' }
}

grails {
    grailsVersion = '2.3.5'
    groovyVersion = '2.1.9'
    springLoadedVersion '1.1.3'
}

tasks.withType(org.grails.gradle.plugin.tasks.GrailsTask) { Task t ->
    t.jvmOptions {
        jvmArgs "-Xmx512m", "-XX:MaxPermSize=256m"
    }
}

dependencies {
    bootstrap 'org.grails.plugins:tomcat:7.0.54'

    compile 'org.grails.plugins:scaffolding:2.0.1'
    compile 'org.grails.plugins:cache:1.1.1'

    runtime 'org.grails.plugins:hibernate:3.6.10.8'
    runtime 'org.grails.plugins:database-migration:1.3.8'
    runtime 'org.grails.plugins:jquery:1.11.0'
    runtime 'org.grails.plugins:resources:1.2.2'
    runtime 'org.grails.plugins:twitter-bootstrap:3.2.0'
    compile 'org.grails.plugins:font-awesome-resources:4.2.0.0'

    runtime 'mysql:mysql-connector-java:5.1.27'
}
Posted in: Database, Groovy, MySQL, Programing Tagged: Gradle, Grails, MySQL

grails domain class 생성 오류

2014년 8월 8일 by YongPwi Leave a Comment

어찌 보면 당연할지도 모르지만 난 멍청해서 생각하지 못했던 문제

grails에 domain class를 추가할 때 보통 JAVA에서 하던 습관처럼 Package 단위로 나누어서 관리하였는데

갑자기 서버가 안 뜨는 상황이 발생,,,

개인적으로 java 에러 로그보다 grails 에러 로그가 아직 익숙하지 않아서인지 선뜻 원인 파악이 쉽지 않다,,,

문제는 서로 다른 Package 안에 동일한 이름의 domain class가 존재하여서 발생한 문제,,,

어찌 보면 ORM Mapping이라 당연할지 몰라도

ORM에 경험이 없는 나로는 처음 경험해보는 문제였다,,,

Posted in: Groovy, Programing Tagged: Grails

Grails Standalone

2014년 5월 16일 by YongPwi Leave a Comment

Grails Standalone 관련 정리

위키에다 정리해두니 블로그로 옮겨오기가 좀 거시기 하네,,,

재작성하긴 너무 번거롭고 링크로 대체,,,

위키링크

Posted in: Groovy, Programing Tagged: Grails

Calendar

5월 2025
일 월 화 수 목 금 토
« 4월    
 123
45678910
11121314151617
18192021222324
25262728293031

Recent Posts

  • ubuntu bastion 설정
  • Spring Boot properties 암호화
  • Git Repository Bitbucket과 Issue Tracker Redmine 연동 설정
  • Spring Security 동일 session 제어
  • Spring @Mock, @Mockbean, @InjectMock

Recent Comments

  • pzotov (Ubuntu 14.04에서 Sonarqube 6.7.1 service 등록)
  • cours de theatre paris (AWS ELB와 Auto Scaling 연동, nginx)
  • bayern munich (IntelliJ EAP Font rendering)
  • camiseta del chelsea (OS X에서 APP 아이콘 변경)
  • cheap football shirts replica (jQuery Ajax에서 json Array 직렬화)

Copyright © [the-year] [site-link].

Powered by [wp-link] and [theme-link].