Last active

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Using GORM for MongoDB in Spring Boot

View boot-gorm-mongodb.groovy
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 56
@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
class CityController {
 
@RequestMapping(value="/", method = GET)
List index() {
City.list().collect { [name: it.name] }
}
 
@RequestMapping(value="/near/{cityName}", method = GET)
ResponseEntity near(@PathVariable String cityName) {
def city = City.where { name == cityName }.find()
if(city) {
List<City> closest = City.findAllByLocationNear(city.location)
return new ResponseEntity([name: closest[1].name], HttpStatus.OK)
}
else {
return new ResponseEntity(HttpStatus.NOT_FOUND)
}
}
 
@PostConstruct
void populateCities() {
City.withTransaction{
City.collection.remove(new BasicDBObject())
City.saveAll( [ new City(name:"London", location: Point.valueOf( [-0.125487, 51.508515] ) ),
new City(name:"Paris", location: Point.valueOf( [2.352222, 48.856614] ) ),
new City(name:"New York", location: Point.valueOf( [-74.005973, 40.714353] ) ),
new City(name:"San Francisco", location: Point.valueOf( [-122.419416, 37.774929] ) ) ] )
}
}
}
 
@Entity
class City {
ObjectId id
String name
Point location
 
static constraints = {
name blank:false
location nullable:false
}
 
static mapping = {
location geoIndex:'2dsphere'
}
}

Is there any way to customize the constraint validation error message? If so, how? And if we can customize the constraint validation message like in Grails, would you recommend Spring Boot over Grails if application is being used as a RESTful service?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.