Next Thursday (Sept 11) I'll be presenting at the PDX RIA group (formerly CFUG) about Groovy. Someone (cough…Simeon…cough) hasn't updated the site with the new info, but rest assured that it's happening. As you might imagine, I'll be talking about my CF Groovy framework, but I'll also be talking about JVM language integration in general, Groovy in general, and how hybrid apps are a good thing. Included in that will be some Hibernate goodness, which I'm still amazed by every time I pick it up because of the drastic reduction in code to write.
Unfortunately, I'm currently at a job where leveraging these technologies is verboten. We use CF8 and Magnolia (a Java CMS) for most of our sites, so it could be really handy to shell out for some "Java" without invoking a compiler. However, it doesn't happen like that. We write some Java, compile, deploy, cycle the container, test, repeat. Or we hack together something with CFML to synthesize the functionality we need. I get some relief on personal projects, where it's CF Groovy w/ Hibernate all the way, but that understandably pales in comparison to my at-work efforts. C'est la vie. I do get a paycheck for the work stuff, which does a remarkable job of offsetting the downsides. ;)
Any chance this is going to be recorded? I would be very interested in learning more about this.
Dan,
Looks like it will be recorded. Sim has a Connect account from Adobe, so we'll be using that. I'm not sure if live remote access will be available as well.
Great news, I will be on the look out for it!
Thanks for the presentation tonight. I figured out the issue I was having with MSSQL, User is a protected variable name. So with the example it errors trying to Generate the table with name User. There might be a way to deference it [], but changing the example class to App_User (and all the references to it) made the example work.
Thanks!
Roy,
No prob, it's always nice to talk about cool stuff and get other people excited. Helps me learn things better as well.
That's weird that that table name is restricted, not just needing escaping. Oh well. Rather than changing your class name (and the in-program implications that has), it's much easier to just change the table name. In addition to your @Entity annotation, you can use an @Table mapping:
@Entity
@Table(name="app_user")
class User ….
That way your domain model doesn't get polluted by database limitations. And it's something that you can do after your app has "real" data as well, shut down the container, rename the table, add the annotation, and start the container back up.