I am trying to use an inline domain with many relationships in Grails 2.2.1. Here is a simplified version of what I'm trying to do.
I map existing db tables:
create table incident (id bigint generated by default as identity, state_id bigint not null, primary key (id)); create table state (id bigint generated by default as identity, name varchar(255) not null, primary key (id)); alter table incident add constraint FK52F44D27499E79E foreign key (state_id) references state;
Domains that map to the incident table:
class Incident { Vehicle vehicle static embedded = ['vehicle'] } class Vehicle{ State state static mapping = { state column: 'state_id' } }
The domain that appears in the status table:
class State { String name }
When I try to run my application, I get the following error:
Message: Error creating bean named "transactionManagerPostProcessor": Initialization of bean failed; The nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean named "transactionManager": unable to resolve bean reference to "sessionFactory" when setting the bean property "sessionFactory"; The nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean named "sessionFactory": init method call failed; nested exception org.hibernate.MappingException: could not determine the type for: test.State, at table: incident, for columns: [org.hibernate.mapping.Column (vehicle_state)]
Is it possible to have a multi-valued connection in the embedded domain?
- Update -
I ended up using a workaround to get the state.
class Vehicle{ static transients = [ "state" ] Long stateId static mapping = { stateId column: 'state_id' } State getState(){ State.get(this.stateId) } }
source share