Hi there, I'm going to use my rusty old Spanish knowledge - hoping I don't miss anything in your question. I hope you're fine with me replying in English, though :)
2015-10-21 4:27 GMT+02:00 Jonathan Palomino Vilca < [email protected]>: > Hola. > Es la primera vez que intento usar jooq al parecer una mejor alternativa a > ORM, comunmente yo usaba spring roo para el mapeo de tablas en java por lo > que algo asà como esto con spring roo: > Usuario user = new Usuario(); > user.setUsername(username); > user.setPassword(password); > user.setHabilitado("S"); > user.setEmail(Email); > user.persist(); > > Lograba hacer un insert a la tabla usuario, obiamente tenia configurado el > datasource algo asi: > <bean class="org.apache.commons.dbcp.BasicDataSource" > destroy-method="close" id="dataSource1"> > <property name="driverClassName" > value="${database.driverClassName1}"/> > <property name="url" value="${database.url1}"/> > <property name="username" value="${database.username1}"/> > <property name="password" value="${database.password1}"/> > <property name="testOnBorrow" value="true"/> > <property name="testOnReturn" value="true"/> > <property name="testWhileIdle" value="true"/> > <property name="timeBetweenEvictionRunsMillis" value="1800000"/> > <property name="numTestsPerEvictionRun" value="3"/> > <property name="minEvictableIdleTimeMillis" value="1800000"/> > <property name="validationQuery" value="SELECT version();"/> > </bean> > > <bean class="org.springframework.orm.jpa.JpaTransactionManager" > id="transactionManager1"> > <property name="entityManagerFactory" ref="entityManagerFactory1"/> > </bean> > <tx:annotation-driven mode="aspectj" > transaction-manager="transactionManager1"/> > <bean > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" > id="entityManagerFactory1"> > <property name="persistenceUnitName" value="persistenceUnit1"/> > <property name="persistenceXmlLocation" > value="classpath:META-INF/persistence1.xml"/> > <property name="dataSource" ref="dataSource1"/> > </bean> > > Sin embargo cuando uso jooq necesito declarar lo siguiente: > > TipoAccesoDao opciones =new TipoAccesoDao(ctx.configuration()); > TipoAcceso tp =new TipoAcceso(); > tp.setId((long)16); > tp.setDescripcionAcceso("prueba"); > tp.setTipoAcceso("16"); > opciones.insert(tp); > Strictly speaking, if you want to re-enact your original code, which looked like this: Usuario user = new Usuario(); user.set... user.persist(); You wouldn't be using POJOs and DAOs in jOOQ, but simply records. E.g. UsarioRecord user = ctx.newRecord(USARIO); user.set... user.store(); This is documented in the following manual section and its subsections: http://www.jooq.org/doc/latest/manual/sql-execution/crud-with-updatablerecords > Pero segun los ejemplos que encontre debo pasarle el > @Autowired > private DSLContext ctx; > > Lo cual considerarÃa inmantenible, se que las clases DAO que genera jooq > implementan de DaoIml, habria alguna forma de pasarle la conexion dsl > general a todas las clases dato para que pueda hacer esto: > TipoAccesoDao opciones =new TipoAccesoDao(); > TipoAcceso tp =new TipoAcceso(); > tp.setId((long)16); > tp.setDescripcionAcceso("prueba"); > tp.setTipoAcceso("16"); > opciones.insert(tp); > There are various ways how you can pass the jOOQ Configuration (which is contained in DSLContext) to jOOQ. For instance, generated DAOs can be "attached" to such a Configuration as follows: TipoAccesoDao opciones = new TipoAccesoDao(ctx.configuration()); In jOOQ 3.7, we have added a new <springAnnotations/> code generator configuration, which generates useful annotations to objects like the generated DAOs: https://github.com/jOOQ/jOOQ/issues/4470 With this new flag, the generated DAO constructor will look something like this: @Autowired public TipoAccesoDao(Configuration configuration) { super(...); } I hope this helps. Let me know if you have any additional questions, and I'm very happy to help. -- You received this message because you are subscribed to the Google Groups "jOOQ User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
