Skip to content

Instantly share code, notes, and snippets.

Avatar

Graeme Rocher graemerocher

View GitHub Profile
@graemerocher
graemerocher / boot-gorm-hibernate4.groovy
Created Apr 4, 2014
Using GORM for Hibernate 4 in Spring Boot
View boot-gorm-hibernate4.groovy
@Grab("org.grails:gorm-hibernate4-spring-boot:1.0.0.RC2")
@Grab("com.h2database:h2:1.3.173")
import grails.persistence.*
import org.springframework.http.*
import static org.springframework.web.bind.annotation.RequestMethod.*
@RestController
class GreetingController {
@RequestMapping(value="/person/greet", method = GET)
@graemerocher
graemerocher / raw-hibernate-vs-gorm-correlated-subqueries.java
Created Apr 29, 2014
Raw Hibernate vs GORM for Hibernate Correlated Subqueries
View raw-hibernate-vs-gorm-correlated-subqueries.java
// Raw Hibernate
DetachedCriteria employeeCriteria = DetachedCriteria.forClass(Employee.class);
employeeCriteria.createAlias("region", "region").setFetchMode("region", FetchMode.JOIN);
employeeCriteria.add(forName("region.continent").in("APAC","EMEA"));
employeeCriteria.setProjection(distinct(property("employeeId")));
Criteria salesCriteria = sessionFactory.getCurrentSession().createCriteria(Sale.class)
salesCriteria.add(forName("employeeId").in(employeeCriteria));
salesCriteria.add(Restrictions.gt("total",100000));
salesCriteria.setProjection(distinct(property("employeeId")));
View keybase.md

Keybase proof

I hereby claim:

  • I am graemerocher on github.
  • I am graemerocher (https://keybase.io/graemerocher) on keybase.
  • I have a public key whose fingerprint is E9CD A0A0 60BC E2BC 9BE9 9C4B 1BC6 016E FBF4 6539

To claim this, I am signing this object:

View trait-builder-issue.groovy
import groovy.xml.*
trait MyBuilder {
def build2() {
def mkp = new MarkupBuilder()
mkp.foo {
bar()
}
}
View compile
#!/usr/bin/env bash
# bin/compile <build-dir> <cache-dir>
# fail fast
set -e
BIN_DIR=$(cd $(dirname $0); pwd) # absolute path
# parse args
BUILD_DIR=$1
CACHE_DIR=$2
@graemerocher
graemerocher / gist:1393603
Created Nov 25, 2011
Using GORM from MongoDB from a Groovy Script
View gist:1393603
@GrabResolver(name='grails-core', root='http://repo.grails.org/grails/core')
@Grab(group='org.grails', module='grails-datastore-gorm-mongo', version='1.0.0.BUILD-SNAPSHOT')
@Grab(group='org.slf4j', module='slf4j-simple', version='1.6.1')
import grails.persistence.*
import org.grails.datastore.gorm.mongo.config.*
MongoDatastoreConfigurer.configure("myDatabase", Book)
Book.withSession {
@graemerocher
graemerocher / boot-gorm-mongodb.groovy
Last active Dec 24, 2015
Using GORM for MongoDB in Spring Boot
View boot-gorm-mongodb.groovy
@Grab("org.grails:gorm-mongodb-spring-boot:1.0.0.RC1")
import grails.persistence.*
import grails.mongodb.geo.*
import org.bson.types.ObjectId
import com.mongodb.BasicDBObject
import org.springframework.http.*
import org.springframework.beans.factory.annotation.Autowired
import static org.springframework.web.bind.annotation.RequestMethod.*
@RestController
View oci-grailsframework-cla.txt
Grails Framework
Individual Contributor License Agreement
By signing below, you accept and agree to the following terms and conditions for Your present and future Contributions submitted to OCI in connection with the Grails project. In return, OCI shall not use Your Contributions in a way that is contrary to the public benefit or inconsistent with the Apache License v. 2.0. Except for the license granted herein to OCI and recipients of software distributed by OCI, You reserve all right, title, and interest in and to Your Contributions.
1. Definitions. "You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with OCI. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of
@graemerocher
graemerocher / TickTockController.groovy
Last active Jul 28, 2016
RxJava for Grails Async Comet Example
View TickTockController.groovy
class TickTockController {
def index() {
Observable.create({ Subscriber subscriber ->
task {
for(i in (0..20)) {
if(i % 2 == 0) {
subscriber.onNext(
Rx.render("Tick")
)
@graemerocher
graemerocher / BookController.groovy
Last active Jul 29, 2016
BookController that uses RxJava and RxGORM for MongoDB
View BookController.groovy
package rxgorm.demo
import grails.artefact.Controller
import grails.rx.web.Rx
import grails.validation.ValidationException
import groovy.transform.CompileStatic
import static org.springframework.http.HttpStatus.*
import static grails.rx.web.Rx.*
import static rx.Observable.*