There will be a new release by then, probably this weekend. On 2010-02-19, Ing. Jan Novotný <novotn...@gmail.com> wrote: > 3rd March. > > 2010/2/19 Clinton Begin <clinton.be...@gmail.com> > >> When is your workshop? >> >> On 2010-02-18, Ing. Jan Novotný <novotn...@gmail.com> wrote: >> > Thank you guys for sharing your experience. It's pretty good to hear >> > that >> > combining annotations and XML approach works in practice. >> > >> > My first thought was, that in case of large systems I wouldn't be able >> > tu >> > guess whether I should look in the Java or XML first when searching for >> > particular statement definition. Next thought was about portability - we >> > were forced a couple of times to translate statements in the XML >> definitions >> > from one DB dialect into another. That is something one must count with >> when >> > writing pure SQL statements. But when they are scattered over these two >> > kinds of files, I will have to move all statements from interfaces to >> > the >> > XML and then make a dialect translation. Maybe there could be a way of >> > extending former interface with annotations override , but this doesn't >> seem >> > much nice to me. What's your view on this? >> > >> > Btw. the presentation will be more of a workshop and I thought that >> > everybody starts just with Maven pom and downloads few libraries from >> > the >> > public repositories. There the latest one is 3-beta-9. Of course with >> some >> > effort I could compile new artifact form trunk a distribute it to their >> > local repositories, you're right. >> > >> > Jan >> > >> > 2010/2/19 Nathan Maves <nathan.ma...@gmail.com> >> > >> >> I completely agree. >> >> >> >> I too have a project using IB3 and I am really loving mixing the two >> >> together. I would give it a try before trying to corner yourself into >> >> using >> >> just one approach. >> >> >> >> >> >> Nathan Maves >> >> nathan.ma...@gmail.com >> >> >> >> >> >> >> >> On Feb 18, 2010, at 4:09 PM, Clinton Begin wrote: >> >> >> >> Just curious, why are you limited to 3.0 Beta 9? >> >> >> >> As for annotations vs. XML, I was worried about splitting between the >> two >> >> at first, and thought that it might be good to choose one approach and >> >> stick >> >> with it. But that would mean you'd have to choose XML, as annotations >> >> can't >> >> compete. That said, I've been working on a project mixing annotations >> and >> >> XML, and I'm very happy with the results. I've found that INSERT, >> UPDATE >> >> and DELETE statements pretty much always remain as annotations, along >> with >> >> simple SELECT statements. The only things I end up putting in XML are >> >> very >> >> complex queries that include collections or associations. Overall, it >> >> seems >> >> quite clean and easy to follow. I've never been in a situation where I >> >> was >> >> confused about it. >> >> >> >> Cheers, >> >> Clinton >> >> >> >> 2010/2/18 Ing. Jan Novotný <novotn...@gmail.com> >> >> >> >>> Hello Clinton, >> >>> >> >>> many thanks for your answers. They made a lot of things much >> >>> clearer >> >>> to >> >>> me - "the whitepaper" set a lot of expectations in the minds of many >> >>> people >> >>> (including me), so that's why I asked those questions. I am sure >> someone >> >>> will ask me those questions at the presentation, so I want to be >> >>> prepared. >> >>> I found some more configuration options in the trunk, but for the >> >>> presentation I am limited to 3-beta-9 where they didnť work. But it's >> >>> good >> >>> to know, that those issues got answered. >> >>> My final question - would you encourage using annotations after all? >> >>> From the limited experience with iBatis 3 I have, they could be used >> only >> >>> to >> >>> simple cases, but they make the code fragmented among annotations and >> >>> XML. I >> >>> can imagine that this could be very confusing in the large scale, so >> >>> maybe I >> >>> should recommend to attendees of the presentation to better stick with >> >>> good >> >>> old XML. What do you think? >> >>> >> >>> Thanks, >> >>> Jan >> >>> >> >>> Offtopic: >> >>> P.S.: you seem very resignated to the Java - does the folks from >> >>> Microsoft >> >>> got you? :) >> >>> >> >>> 2010/2/18 Clinton Begin <clinton.be...@gmail.com> >> >>> >> >>>> Hi Jan, >> >>>> >> >>>> >> >>>> >> expectations come from iBatis 3 Whitepaper >> >>>> >> >>>> Just to be clear, it wasn't a "white paper" it was a community >> >>>> whiteboard >> >>>> for brainstorming ideas. So it contained goals and ideas, but there >> was >> >>>> never a commitment to any of them. >> >>>> >> >>>> >> >>>> >> Multilevel Configuration >> >>>> >> >>>> Ultimately I decided not to implement it this way because it became >> hard >> >>>> to trace where behavior was configured. To fully understand how a >> >>>> statement >> >>>> might behave or perform, you would have had to look in 3 places. I >> >>>> wasn't >> >>>> satisfied with that, so I made it to be either XML or Annotations per >> >>>> statement. You can happily mix mappers with annotations or xml >> >>>> statements, >> >>>> but each statement must use either one or the other. >> >>>> >> >>>> >> >>>> >> to state all properties in order to alter the single one >> >>>> >> >>>> That's configurable. See the docs under the automappingBehavior >> setting >> >>>> (I think that's what it's called). >> >>>> >> >>>> >>annotations >> >>>> >> >>>> You think it's unpleasant? You should have seen me the day that I >> >>>> had >> >>>> to >> >>>> remove WORKING CODE from my system because Sun changed the behavior >> >>>> of >> >>>> Java >> >>>> Annotations between Java 1.5 and 1.6. >> >>>> >> >>>> In a nutshell, circular references are not supported in the >> Annotations >> >>>> framework. All of your best hopes and dreams of having something >> better >> >>>> are >> >>>> dashed by this one limitation. There was a workaround in Java 1.5, >> but >> >>>> Sun >> >>>> considered it a compiler bug, so they "fixed" the workaround in JDK >> 1.6. >> >>>> If >> >>>> you want to see it, you can dig back through a few hundred commits >> >>>> and >> >>>> see >> >>>> where I removed that behavior. >> >>>> >> >>>> A shame. If this was C# I would have been able to fully realize the >> >>>> vision of where we wanted to take the annotation (or attributes in >> >>>> C#) >> >>>> approach. >> >>>> >> >>>> **>> 3 combinations of annotations and xml >> >>>> >> >>>> In general, I recommend using annotations for simple things, and use >> XML >> >>>> for anything more complicated. Sorry, but Java annotations are just >> too >> >>>> messy, limited and ugly. There's a million reasons why we had to >> scale >> >>>> back >> >>>> the behavior and limit it to what you see now. If you want to >> >>>> understand >> >>>> why, I encourage you to try to implement some of your suggestions. >> >>>> You'll >> >>>> find the same challenges. >> >>>> >> >>>> >> 4 automatic (generated) SQL >> >>>> >> >>>> Yes, I completely ditched the idea of generating SQL. It's just a >> road >> >>>> that I wasn't prepared to take iBATIS down. >> >>>> >> >>>> >> 5 dynamic sql in annotations >> >>>> >> >>>> Yes, SelectProvider and the SQL Builder framework are the only way >> >>>> (other >> >>>> than writing your own). I wasn't about to start putting XML embedded >> in >> >>>> SQL >> >>>> embedded in strings embedded in annotations... that's out of hand and >> >>>> bad >> >>>> practice IMHO. >> >>>> >> >>>> I appreciate your questions, but please realize that everything was >> >>>> considered. Some things were left out for very good design reasons, >> >>>> others >> >>>> because of limitations in Java and others we might just not have had >> >>>> a >> >>>> chance to implement yet. >> >>>> >> >>>> Clinton >> >>>> >> >>>> 2010/2/18 Ing. Jan Novotný <novotn...@gmail.com> >> >>>> >> >>>>> Hello, >> >>>>> >> >>>>> >> >>>>> I am going to have a presentation about iBatis 3 at Czech JUG. I >> >>>>> have >> >>>>> a 3-year experience with iBatis-2 and now I am doing little research >> on >> >>>>> what's new in upcoming iBatis 3 release. Most of my expectations >> >>>>> come >> >>>>> from >> >>>>> iBatis 3 Whitepaper at the iBatis Confluence site. Now I am testing >> the >> >>>>> new >> >>>>> version and there are some things I didn't expect. I will be very >> >>>>> pleased if >> >>>>> anyone capable could answer me following questions so that I may >> >>>>> forward >> >>>>> them to the attendees of CZ JUG: >> >>>>> >> >>>>> * 1) multilevel configuration* >> >>>>> Firstly I thought that there would be a chance to override >> >>>>> less >> >>>>> prioritized level of configuration. Meaning, that if I have SQL >> >>>>> represented >> >>>>> in an @Select annotation and I create XML statement in mapper file >> with >> >>>>> the >> >>>>> same name, this XML declaration will take over the annotation and >> will >> >>>>> be >> >>>>> used instead. Reality is that iBatis will fail to start complaining >> >>>>> about >> >>>>> duplicate declaration. As I discovered, I can use only one or the >> other >> >>>>> way >> >>>>> - I can combine XML file with annotation based Java DAO, but they >> must >> >>>>> not >> >>>>> overlap in the sense of statement declaration. Is that right? Why is >> >>>>> that >> >>>>> done this way? >> >>>>> Next I thought there could be some means to explicitly say, >> that >> >>>>> some parts of the lower configuration level fit for me and therefore >> >>>>> ease my >> >>>>> life a little. Let say I have ResultMap statement in XML >> configuration >> >>>>> and >> >>>>> 95% of its properties is fine by convention, but I need only to >> specify >> >>>>> more >> >>>>> single property or declare association / collection mapping. In that >> >>>>> case I >> >>>>> have to state all properties in order to alter the single one that >> >>>>> is >> >>>>> needed >> >>>>> to be extra taken care of (or at least these are my findings from >> >>>>> the >> >>>>> tests >> >>>>> I wrote). What I really want to say is: use convention to all >> >>>>> properties >> >>>>> except those that I explicitly configure in XML - that is not >> possible, >> >>>>> is >> >>>>> it? >> >>>>> >> >>>>> * 2) annotations* >> >>>>> Another unpleasant surprise was, that I am not able to get >> along >> >>>>> with annotations to specify <collection> mapping - annotation >> >>>>> @Collection is >> >>>>> missing. Also @Association is not present - but as I discovered, >> >>>>> it's >> >>>>> possible to write @Result annotations in the way that associated >> object >> >>>>> gets >> >>>>> mapped. In documentation I found a statement, that annotations in >> Java >> >>>>> aren't powerfull enough to make some things possible, but I can't >> make >> >>>>> up >> >>>>> why @Collection annotation is not possible to be made. >> >>>>> >> >>>>> * 3) combination of XML and annotations* >> >>>>> I tried combination of XML and annotations (due to lack of >> >>>>> @Collection annotation) to specify @Select annotation but specify >> >>>>> output as >> >>>>> a ResultMap mapping in the XML configuration. But that's not >> >>>>> possible >> >>>>> too. >> >>>>> Mixing configuration from annotations and XML is not possible in any >> >>>>> way I >> >>>>> guess. Ok, but is there any way how to reuse my annotations, to get >> the >> >>>>> same >> >>>>> behaviour as reusing ResultMap mapping in different statements of >> >>>>> XML >> >>>>> configuration?! >> >>>>> >> >>>>> * 4) automatic SQL implementation* >> >>>>> I didn't find any piece of this functionality. May I take it, >> >>>>> that >> >>>>> this was completely discarded? >> >>>>> >> >>>>> * 5) annotations and dynamic SQL* >> >>>>> Finally I didn't find any clue how to use dynamic SQL in >> >>>>> annotations. Does that mean that @SelectProviders are the only way >> how >> >>>>> to >> >>>>> make dynamic queries by the Java code? >> >>>>> >> >>>>> Thanks for your time and answers I can use in my presentation if >> >>>>> anyone asks. Please, don't be offended by my questions, generally I >> >>>>> think >> >>>>> iBatis is a great DAO framework. >> >>>>> >> >>>>> Cheers Jan >> >>>>> >> >>>>> -- >> >>>>> -------------------------------------------------------------- >> >>>>> Ing. Jan Novotný >> >>>>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ >> >>>>> http://blog.novoj.net >> >>>>> Myšlenky dne otce Fura >> >>>>> -------------------------------------------------------------- >> >>>>> >> >>>> >> >>>> >> >>> >> >>> >> >>> -- >> >>> -------------------------------------------------------------- >> >>> Ing. Jan Novotný >> >>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ >> >>> http://blog.novoj.net >> >>> Myšlenky dne otce Fura >> >>> -------------------------------------------------------------- >> >>> >> >> >> >> >> >> >> > >> > >> > -- >> > -------------------------------------------------------------- >> > Ing. Jan Novotný >> > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ >> > http://blog.novoj.net >> > Myšlenky dne otce Fura >> > -------------------------------------------------------------- >> > >> >> -- >> Sent from my mobile device >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org >> For additional commands, e-mail: user-java-h...@ibatis.apache.org >> >> > > > -- > -------------------------------------------------------------- > Ing. Jan Novotný > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ > http://blog.novoj.net > Myšlenky dne otce Fura > -------------------------------------------------------------- >
-- Sent from my mobile device --------------------------------------------------------------------- To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org