|
View:
New views
8 Messages
—
Rating Filter:
Alert me
|
|
|
JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)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@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)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@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)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 <burningodzilla@...> wrote:
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)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 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'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</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 <dchenbecker@...> wrote: If updating the pom hibernate version fixes the problem, please file an issue and we'll update the Archetype. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)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 > <dchenbecker@... <mailto:dchenbecker@...>> 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 > <burningodzilla@... <mailto:burningodzilla@...>> 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@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)Troy, Glad that helped. You don't need to manually install log4j, you can declare a dependency on the "simple" artifact: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.4.2</version> </dependency> I think those simple tweaks (deps on hibernate 3.4 and sl4j) may fix the JPA archetype woes, at least w/ mysql. 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 > <dchenbecker@... <mailto:dchenbecker@...>> 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 > <burningodzilla@... <mailto:burningodzilla@...>> 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@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)I think the slf4j-simple you suggest might work better than the slf4j-nop I had settled upon. I just picked one out of the slf4j-1.4.2.jar that didn't have any other downstream dependencies. I am sure slf4j-nop does absolutely nothing (old school >/dev/null style logging) whereas slf4j-simple might give simple stream based logging which is probably preferred for troubleshooting at least. I'll need to try it.
I opened a new issue (#156) at Indrajit's request to get the pom.xml updated in the Archetype. Will be interested to see which one he chooses. Thanks again, Troy On Tue, Nov 3, 2009 at 5:00 AM, Chris Lewis <burningodzilla@...> wrote:
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)Thank you Troy for the detailed ticket! A fix is up for review: http://reviewboard.liftweb.net/r/90/ slf4j-simple is preferred common denominator. slf4j-nop is self-defeating IMHO :) Good point regarding slf4j-log4j12 for legacy fallback. I have added an inline note in the POM. Cheers, Indrajit On 03/11/09 6:44 PM, Troy Noble wrote: > I think the slf4j-simple you suggest might work better than the > slf4j-nop I had settled upon. I just picked one out of the > slf4j-1.4.2.jar that didn't have any other downstream dependencies. I > am sure slf4j-nop does absolutely nothing (old school >/dev/null style > logging) whereas slf4j-simple might give simple stream based logging > which is probably preferred for troubleshooting at least. I'll need to > try it. > > I opened a new issue (#156) at Indrajit's request to get the pom.xml > updated in the Archetype. Will be interested to see which one he chooses. > > Thanks again, Troy > > On Tue, Nov 3, 2009 at 5:00 AM, Chris Lewis <burningodzilla@... > <mailto:burningodzilla@...>> wrote: > > > Troy, > > Glad that helped. You don't need to manually install log4j, you can > declare a dependency on the "simple" artifact: > > <dependency> > <groupId>org.slf4j</groupId> > <artifactId>slf4j-simple</artifactId> > <version>1.4.2</version> > </dependency> > > I think those simple tweaks (deps on hibernate 3.4 and sl4j) may fix the > JPA archetype woes, at least w/ mysql. > > > 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> <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> > > <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> <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 > > <dchenbecker@... <mailto:dchenbecker@...> > <mailto:dchenbecker@... <mailto:dchenbecker@...>>> 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 > > <burningodzilla@... <mailto:burningodzilla@...> > <mailto:burningodzilla@... <mailto:burningodzilla@...>>> > 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@... To unsubscribe from this group, send email to liftweb+unsubscribe@... For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~--- |
| Free embeddable forum powered by Nabble | Forum Help |