Troy, Thanks for the analysis. We need to fix the pom for JPADemo archetype.
Can you please file a ticket for this (http://github.com/dpp/liftweb/issues)? We'll update the pom and resolve the slf4j dependencies. Cheers, Indrajit NB: We might just make it for M7 if all goes well. Else, it'll be available in the SNAPSHOT as usual. On 03/11/09 6:55 AM, Troy Noble wrote: > Yes I tried Chris's suggestion, and JPA does in fact work with MySQL 5.0 > with auto-increment ID columns even with columns named something other > than 'id' using @Column(val name="PROJECT_TYPE_ID") for example. > > Thanks Chris! > > I changed JPAWeb/spa/pom.xml dependency for hibernate-entitymanager to > version 3.4.0.GA <http://3.4.0.GA> and that caused maven to grab all of > its dependencies included an update hibernate-core 3.3.0.SP1 which had > the fix I needed. Since hibernate now appears to have some dependency > on org.slf4j, I was then getting an Exception... something about not > being able to find org.slf4j.impl.StaticLoggerBinder. So I had to also > manually download and install the > org/slf4j/slf4j-nop/1.4.2/slf4j-nop-1.4.2.jar in my local maven > repository (see command below if anyone is interested) since I couldn't > figure out how to get it to grab it automatically from www.slf4j.org > <http://www.slf4j.org>'s site. I'm no maven expert, so there's probably > some better way to do it, I just don't know how yet. > > <dependency> > <groupId>org.hibernate</groupId> > <artifactId>hibernate-entitymanager</artifactId> > <version>*3.4.0.GA <http://3.4.0.GA>*</version> > <exclusions> > <exclusion> > <groupId>javax.transaction</groupId> > <artifactId>jta</artifactId> > </exclusion> > </exclusions> > </dependency> > * <dependency> > <groupId>org.slf4j</groupId> > <artifactId>slf4j-nop</artifactId> > <version>1.4.2</version> > </dependency>* > > The maven command I ran to install slf4j-nop into my local repository is: > > mvn deploy:deploy-file -DgroupId=org.slf4j -DartifactId=slf4j-nop > -Dversion=1.4.2 -Dpackaging=jar -Dfile=c:/temp/slf4j-nop-1.4.2.jar > -Durl=file://c:/temp > > Thanks again for your help, and I agree Derek that it would be great to > have this updated in the Archetype when you get a chance. > > Troy > > On Mon, Nov 2, 2009 at 11:55 AM, Derek Chen-Becker > <dchenbec...@gmail.com <mailto:dchenbec...@gmail.com>> wrote: > > If updating the pom hibernate version fixes the problem, please file > an issue and we'll update the Archetype. > > Thanks, > > Derek > > > On Mon, Nov 2, 2009 at 6:23 AM, Chris Lewis > <burningodzi...@gmail.com <mailto:burningodzi...@gmail.com>> wrote: > > > Troy, > > I ran into the same problem. It seems to be a hibernate issue - that > archetype uses an older version of hibernate that breaks with mysql. > Change the version in your pom for hibernate (I don't remember the > latest, maybe 3.4GA). I meant to post this a while ago, as it > cost me an > hour or more to figure out. > > chris > > Troy Noble wrote: > > I'm not even sure this is a Lift issue, could be Hibernate or > Scala... > > but here goes... > > > > I get one test failure in TestJPAWeb.scala when I use JPA > with MySQL > > (also confirmed with H2) with auto-increment id column. > > > > @Entity > > class Author { > > @Id > > @GeneratedValue(){val strategy = GenerationType.AUTO} > > var id : Long = _ > > ... > > } > > > > Note that I also tried adding @Column{val nullable = false, val > > insertable = false, val updatable = false} per another > JPA+Scala page > > I read, just to see if it makes a difference. It didn't. I also > > tried GenerationType.IDENTITY. No difference. > > > > If I turn on showSql it appears that auto-increment columns are > > getting included in the SQL statement for some reason such as: > > > > insert into author (name, id) values (?, ?) > > > > And I get an error indicating no value is set for column 2. The > > Hibernate output using H2 database appears in > spa/target/surefire- > > reports/com.foo.jpaweb.model.TestJPAWeb-output.txt is as follows: > > > > Hibernate: insert into Author (name, id) values (?, ?) > > Oct 31, 2009 7:05:48 AM org.hibernate.util.JDBCExceptionReporter > > logExceptions > > WARNING: SQL Error: 90012, SQLState: 90012 > > Oct 31, 2009 7:05:48 AM org.hibernate.util.JDBCExceptionReporter > > logExceptions > > SEVERE: Parameter #2 is not set; SQL statement: > > insert into Author (name, id) values (?, ?) [90012-121] > > > > A similar problem was reported in Hibernate 3.2.4 but was > fixed in > > 3.2.6... so I'm assuming version 3.3.1GA that Liftweb > presently uses > > should not be the source of this problem? That might not be > a good > > assumption. I was going to try to do a stand-alone Scala + > JPA test > > case apart from Lift, and then try with Java + JPA. > > > > But before I go too far down that path, I wanted to make sure > I'm not > > doing something wrong or that it's not a lift issue. > > > > This is very easy to reproduce if you start by downloading a > clean > > JPADemo as per the liftweb + JPA wiki page (or the liftbook > example) > > and change the top level pom.xml to include: > > > > <dependency> > > <groupId>com.h2database</groupId> > > <artifactId>h2</artifactId> > > <version>1.2.121</version> > > </dependency> > > > > or for MySQL: > > > > <dependency> > > <groupId>mysql</groupId> > > <artifactId>mysql-connector-java</artifactId> > > <version>5.0.8</version> > > </dependency> > > > > And then change the following entries in the > spa/src/main/resources/ > > META-INF/persistence.xml to target an h2 database instead of the > > default derby: > > > > <property name="hibernate.dialect" > > value="org.hibernate.dialect.H2Dialect"/> > > <property name="hibernate.connection.driver_class" > > value="org.h2.Driver"/> > > <property name="hibernate.connection.url" > > value="jdbc:h2:testDB"/> > > > > or if you want to use your local MySQL 5.0.x server instead > (assumes > > local DB named JPADemo exists, and is writable by user named > lifdev > > with password lift1234 (note the & is very important > between the > > username & the "password="): > > > > <property name="hibernate.dialect" > > value="org.hibernate.dialect.MySQL5InnoDBDialect"/> > > <property name="hibernate.connection.driver_class" > > value="com.mysql.jdbc.Driver"/> > > <property name="hibernate.connection.url" value="jdbc:mysql:// > > localhost/JPADemo?user=liftdev&password=lift1234"/> > > > > Then "cd spa" and type "mvn clean install -Dscala.version=2.7.7" > > > > For what it's worth, if I open the H2 scheme with Squirrel > SQL it all > > looks happy from the schema creation side and has > auto-increment in > > the 'id' column. I can insert rows manually just fine. > Similarly for > > MySQL even for the newly-created tables 'author' and 'book'. > > > > Thanks, Troy > > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---