On Wed, Feb 11, 2009 at 3:32 PM, Henry Ho <[email protected]> wrote:
> This looks totally amazing!  Would you say CFGroovy is at a stable,
> production level yet?  What are you planning to do with the next version?
>
> I've read about GORM in Grails.  It was meant to provide an easier API than
> Hibernate's, right?  Since CFGroovy does not have a GORM-like layer, would
> dealing with Hibernate directly be a nightmare?
>
> This is the first time I saw that ColdSpring configuration.  Maybe it
> deserves to be on an entry of your blog?
>
> So under what situation is JEE and whole java stack is required?  How come
> the guys at Broadchoice didn't use CFGroovy instead?


I believe CFGroovy wasn't born yet, for starters.


>
>
> This is eye-opening to say the least!!!
>
>
> Henry Ho
>
>
> On Wed, Feb 11, 2009 at 12:10 PM, Barney Boisvert <[email protected]>
> wrote:
>>
>> Neither Spring nor Grails requires JEE either, only a web container
>> (what CF/Railo runs in).  If you use CFGroovy, it provides the same
>> sort of wrapping of Hibernate that Spring provides, though it's not as
>> full featured.  If you need some of the more esoteric functionality
>> you'll have to roll your own to some extent, but for the "mainstream"
>> use cases it's all really simple.  I've put some ColdSpring conf for
>> setting up CFGroovy with Hibernate support and a transaction aspect
>> for proxying your services with at the bottom of the email, along with
>> a sample entity POGO.  Very Spring-like, very simple.
>>
>> You can certainly write custom SQL code either via Hibernate or just a
>> normal CFQUERY tag against the database directly.  CFGroovy uses a
>> standard DSN for it's connection source, so you can use the same DSN
>> in CFQUERY and do whatever you need.  You also have access to the full
>> Hibernate query mechanisms, so you can go at it that way as well.  You
>> obviously can't use CFQUERY (or any CF tags) inside a POGO, but you
>> can use the @Formula annotation if you need a dynamically computed
>> property that you'd rather express in SQL instead of with Groovy code.
>>  If you're willing to break a little encapsulation, you can access the
>> Hibernate session from inside your POGO to run arbitrary queries that
>> way, but I'd strongly recommend against it.  If you want to do that,
>> you probably have an architectural/design issue to address.
>>
>> cheers,
>> barneyb
>>
>> Here's the promised ColdSpring config:
>>
>>    <bean id="cfgroovy" class="cfgroovy.cfgroovy" init-method="configure">
>>        <property name="path">
>>            <value>${groovyPath}</value>
>>        </property>
>>        <property name="plugins">
>>            <list>
>>                <ref bean="cfhibernate" />
>>            </list>
>>        </property>
>>    </bean>
>>
>>    <bean id="cfhibernate" class="cfgroovy.HibernatePlugin">
>>        <property name="entityPath">
>>            <value>${entityPath}</value>
>>        </property>
>>        <property name="coldFusionDsn">
>>            <value>${datasource}</value>
>>        </property>
>>        <property name="annotatedClasses">
>>            <list>
>>                <value>Author</value>
>>                <value>Category</value>
>>                <value>Comment</value>
>>                <value>Entry</value>
>>            </list>
>>        </property>
>>    </bean>
>>
>>    <bean id="transactionAdvice"
>> class="cfgroovy.hibernatetransactionadvice">
>>        <property name="cfhibernate">
>>            <ref bean="cfhibernate" />
>>        </property>
>>    </bean>
>>
>> And the sample entity POGO:
>>
>> import javax.persistence.*
>> import org.hibernate.annotations.*
>>
>> @Entity
>> class Entry extends AbstractEntity {
>>
>>        String title
>>        String body
>>
>>        @ManyToOne
>>        Author author
>>
>>        @OneToMany(mappedBy="entry")
>>        @Sort(type=SortType.NATURAL)
>>        SortedSet<Comment> comments
>>
>>        @ManyToMany(mappedBy="entries")
>>        @Sort(type=SortType.NATURAL)
>>        SortedSet<Category> categories
>>
>> }
>>
>> On Wed, Feb 11, 2009 at 12:00 PM, Henry Ho <[email protected]> wrote:
>> > Oh, right...
>> >
>> > Hibernate+Groovy, w/ CFGroovy, CF8 Standard is okay.
>> >
>> > It is Spring (& Grails I suppose) that requires JEE server, right?
>> >
>> > I thought Spring, in some way, makes Hibernate easy.  If I use Groovy
>> > directly with Hibernate using CFGroovy, what sort of difficulties will I
>> > face by using it directly without Spring?
>> >
>> > I guess if I choose that route, I'll write the beans as POGO, use
>> > annotation
>> > for Hibernate, right?  What if I need to write some custom SQL code?  I
>> > can't use CFQuery in POGO right?
>> >
>> >
>> > Thanks,
>> > Henry Ho
>> >
>>
>>
>>
>> --
>> Barney Boisvert
>> [email protected]
>> http://www.barneyb.com/
>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CFCDev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cfcdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to