unit tests in grails run without the environment being set up. There is no database; objects and the gorm are mocked, and you need to do specific things to set up the domain objects for testing. And you can't do things like test hql based queries (I think that feature might be coming in newer versions of grails)
Integration tests are completely different. You bootstrap code is run, and all db calls go to an actual running database (which you can configure in datasources if you want it to be different). If you call a service method from an integration test, it will go to the db, with transactions and everything else. Also, The Spring bean autowiring/dependency injection step is run, so all your services are fully wired up and ready to go.
Thats a general outline, without seeing the tests and the failures, its hard to say whats wrong.