参考 http://grails.1312388.n4.nabble.com/One-hibernate-sequence-is-used-for-all-Postgres-tables-td1351722.htmlむかしJIRAにもチケット上がっていたみたいですが、 http://jira.grails.org/browse/GRAILS-3138 GrailsとうかHibernateの問題なのでclose…
grails2.1.0での情報。org.codehaus.groovy.grails.validation.AbstractConstraint#rejectValueWithDefaultMessageで処理している。 ... final Locale locale = LocaleContextHolder.getLocale(); final Class constrainedClass = (Class) args[1]; final St…
元ネタ http://blog.andresteingress.com/2012/03/04/using-notyetimplemented-in-test-cases/@NotYetImplementedとそのテストメソッドは失敗しなくてはいけなくて、逆に成功してしまうと検証エラーとして扱われるみたい。 class EchoService { def echo(arg…
元ネタ http://mrhaki.blogspot.fr/2012/06/groovy-goodness-partial-matches.htmlAPIはこのへん。 http://groovy.codehaus.org/groovy-jdk/java/util/regex/Matcher.html#matchesPartially()なかなか説明が難しいのですが、とある文字列があって、その文字…
withDefaultはwithLazyDefaultのエイリアスなので機能的にはwithEagerDefault、withLazyDefaultが追加されました。今までmapには似たようなのがありましたが、今回Listにも追加されました。それぞれ要素を取得した際の要素のパディング方法や、nullの扱いが…
元ネタ http://blog.bloidonia.com/post/26065074691/whats-new-in-groovy-2-0-takewhile-and-dropwhile特定の条件を満たしている間までの要素をコレクションとして取得するtakeWhileと、特定の条件を満たしている間までの要素を落としたコレクションを取得…
元ネタ http://blog.bloidonia.com/post/26065857945/whats-new-in-groovy-2-0-inject-with-defaultgroovy2.0からinjectの初期値の指定を省略するとCollectionの先頭要素を初期値として処理してくれるようです。 def items = [1, 2, 3, 4, 5] // 1.8.6まで a…
Eclipseでずっと便利に使ってた機能で、最初にクラスをnewしてからCtrl+1からのローカル変数にするとかそういうやつです。Intellij IDEAでもいくつかやり方があったのですが、一番近い感覚で使えるのがリファクタリングの"Refactor This..."を使用する方法で…
リファレンスの内容そのままですが、同じ項目群を複数持つだとか、DB上の項目が多いからグルーピングしたいといった時にコンポジションが使えます。この場合テーブル上は1テーブルで表現されますが、アプリケーション側からは対応するクラスに分割して扱えま…
GORMでの継承によってデータベース上でどのようにスキーマ定義するかというお話です。Grailsのデフォルトの継承戦略はtable-per-hierarchyになっています。例えば次のようなドメインがあったとします。 class Parent { String name } class Sub1 extends Par…
こういうやつです。それぞれがひとつのNodeというインスタンスで表される。 class Node { String name static belongsTo = [parent: Node] static hasMany = [children: Node] static mappedBy = [children: "parent"] } belongsToとhasManyしてしてマッピン…
デフォルトだとtest-appした際に標準出力は、どこかいずこへもっていかれコンソールに表示されません。ちょっとした機能確認の為にUnitTestを使って学習テストなどやっていると、ついついprint使いたくなってしまうのですが、なぜかコンソールに出力してくれ…
DataSource.groovyでloggingSqlをtrue、formatもしたい場合はformatSqlをtrueに。 dataSource { ... loggingSql = true formatSql = true } おなじDataSource.groovyで hibernate { show_sql = true format_sql = true ... } としても同じ。こんな感じで出る…
Spockのwikiでも https://code.google.com/p/grails-spock-examples/wiki/Overview#Testing_constraints というのが紹介されているのですが、もうちょっとカッチョいい方法が http://www.christianoestreich.com/2011/11/domain-constraints-grails-spock/ …
先日かなり割引していたんですが少し高くなっちゃいましたが買えます。 http://shop.oreilly.com/product/0636920024750.do'Best Practices for Experienced Grails Developers' とかかなり実用的な内容になりそうな予感。ちまちまと読んでいこうと思います…
元ネタ: http://www.intelligrape.com/blog/2012/05/12/overriding-properties-in-a-spring-bean-with-beanfactorypostprocessor/BeanPostProcessorの実装クラスを登録すると、SpringBeanの初期化時に処理をフック出来るみたいです。結構簡単。BeanPostProce…
ニーズがあったら書く
1.8.6からListにcollateのメソッドが4つ追加されています。 http://groovy.codehaus.org/groovy-jdk/java/util/List.html#collate(int)これを使うと簡単にサブリストが作れる。
ちょっと今更感がありますが11.1からGroovyShellがIntellij上で使えます。 http://blogs.jetbrains.com/idea/2012/04/groovy-support-improvements-in-intellij-idea-111/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+jetbrains_intellijid…
http://grails.org/doc/latest/ref/Command%20Line/refresh-dependencies.html に書いてあるとおりですが grails refresh-dependencies --include-source --include-javadoc とやると$HOME/.grails/ivy-cacheの中にうにうに落ちてきます。というのもコード書…
http://d.hatena.ne.jp/Kazuhira/20120415/1334486571 によるとgroovyで合成関数ができるらしい。って思ったら青い本にちゃんと書いてあった。プログラミングGROOVY作者: 関谷和愛,上原潤二,須江信洋,中野靖治出版社/メーカー: 技術評論社発売日: 2011/07/06…
https://github.com/edvinasbartkus/grails-coffeescript-resources で簡単に出来た。とりあえず入れる。 grails install-plugin coffeescript-resources後はresource pluginと同じように使える。ApplicationResources.groovyにcoffeeのモジュールを追加して…
authorized_keysにcommandってのを書くとその公開鍵でログインしてきたユーザにそのコマンドを実行させることが出来るということを知った。きっと知らなかったのは私だけでしょう。 command="~/env.groovy" ssh-rsa xxx な感じで #!/usr/bin/env groovy Syst…
3.0 から Javaconfig という XML でなく Java のコードで Spring の設定が記述できる機能が追加されていましたが、この機能が Test でも使えるようになりました。従来 3.0 のテストケースは @ContextConfiguration を使用してこんな定義をしていました。 @Ru…
先日 Spring 3.1 の RC1 が出ました。新機能は以下のとおり。http://static.springsource.org/spring/docs/3.1.0.RC1/spring-framework-reference/html/new-in-3.1.html3.1 GA release を11月末にリリース予定で、その間にRC2を出すとのことです。
3.1からProfileという仕組みを使ってBeanの定義を簡単に切り替えられました。RailsとかGrailsだとかSeasar2とかにも似たのがありますね。それです。やり方はXMLで定義する方法と、Javaのクラスに対してアノテーションを設定する方法がありますが、まずはXML…
いろいろ紹介してきましたが、全部以下に書いてあるので、ざっと目を通すといいかなぁと思います。http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#repositories.custom-implementations色々触ってみた感想は、Spring で…
ここまで紹介てきたクエリの発火方法で、恐らくほとんどのことができるんじゃないかと思います。ただ、どうしても自分で実装を持ちたくなるような時もあります。Spring Data JPA では定義したリポジトリのインタフェースに対し、独自の拡張クラスを作成する…
昨日のSpecificationの続きでSpecificationを複数組み合わせて使う際に便利な、Specificationsというヘルパークラスが用意されている。 public class Specifications<T> implements Specification<T> { private final Specification<T> spec; private Specifications(</t></t></t>…
Spring Data JPA では Querydsl なるものがサポートされています。 http://www.querydsl.com/色々機能があるみたいですが、カンタに言うとEntityクラスからAPTでメタ情報のクラスを生成して、そのクラスを利用してタイプセーフで流れるようにクエリが書ける…