JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)

View: New views
8 Messages — Rating Filter:   Alert me  

JPADemo 1.1-SNAPSHOT: id with auto-increment (MySQL or H2)

by Troy Noble :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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)

by Chris Lewis-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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)

by Derek Chen-Becker-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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:

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 &amp; 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&amp;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)

by Troy Noble :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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.

Thanks,

Derek


On Mon, Nov 2, 2009 at 6:23 AM, Chris Lewis <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 &amp; 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&amp;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)

by Indrajit Raychaudhuri :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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)

by Chris Lewis-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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)

by Troy Noble :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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:

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 &amp; 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&amp;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)

by Indrajit Raychaudhuri :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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
-~----------~----~----~----~------~----~------~--~---