On 12/10/07, Rob Hills <[EMAIL PROTECTED]> wrote:
>
> Hi Michael,
>
> I've almost finished my refactoring and I've run into a hbm2ddl problem
> that I have a workaround for, but I'm still curious about why it's
> happening...
>
> Michael Horwitz wrote:
> > On 12/10/07, *Rob Hills* <[EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED]>> wrote:
> >
> >     Hi Michael,
> >
> >     Michael Horwitz wrote:
> >
> > <dependency>
> >   <groupId>joda-time</groupId>
> >   <artifactId>joda-time</artifactId>
> >   <version>${joda-time.version}</version>
> > </dependency>
> >
> > <dependency>
> >   <groupId>joda-time</groupId>
> >   <artifactId>joda-time-hibernate</artifactId>
> >   <version>${joda-time-hibernate.version}</version>
> > </dependency>
> >
> > with joda-time.version = 1.4 and joda-time-hibernate.version = 1.0
> >
> I found the latest version of joda-time is now 1.5 (in fact 1.5.1) so
> I'm using that - it includes a new bit of functionality I already can't
> live without ;-)
> >
> > To get it all working with Hibernate you will need a package-info.java
> > file in the same directory as your model classes. Sample included below:
> >
> > @TypeDefs( { @TypeDef(name = "JodaDateTime", typeClass =
> > PersistentDateTime.class),
> >   @TypeDef(name = "JodaLocalTime", typeClass =
> > PersistentLocalTimeAsTime.class),
> >   @TypeDef(name = "JodaLocalDate", typeClass =
> > PersistentLocalDate.class)})
> > package com.mycompany.model;
> >
> > import org.hibernate.annotations.TypeDef;
> > import org.hibernate.annotations.TypeDefs;
> > import org.joda.time.DateTime;
> > import org.joda.time.LocalDate;
> > import org.joda.time.LocalTime;
> > import org.joda.time.contrib.hibernate.PersistentDateTime ;
> > import org.joda.time.contrib.hibernate.PersistentLocalDate;
> > import org.joda.time.contrib.hibernate.PersistentLocalTimeAsTime;
> >
> > You may need to add some additional typedefs as required. Once that
> > lot is in place simply annotate the getter of each Joda-time field
> > with the correct type, e.g.:
> >
> > @Type(type = "JodaDateTime")
> >
> I did the above virtually verbatim (just changed the package name to be
> the same as my model package).
>
> My problem is that when I try and run the maven hibernate3:hbm2ddl goal,
> I get errors like this:
>
> Could not determine type for: JodaLocalTime, for columns:
> [org.hibernate.mapping.Column(start_time)]
>
> for each of the columns I've defined a joda type for.
>
> The workaround I've found is to simply replace the
> @Type(type="JodaDateTime")
> with the full classname, like this:
> @Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
>
> However, as I mentioned before, I'm curious to discover why the TypeDefs
> in the package-info.java file aren't working.  FWIW, I've tried running
> this goal both from within Eclipse and from the command line in case
> there was some flaw in my Eclipse Maven plugin, but the same thing
> happens.
>
> Any thoughts?


Yeah. Me doing things in too much of a rush as per usual! Forgot to mention
you need to add the following to your hibernate.cfg.xml in the mappings
section:

<mapping package="com.mycopmpany"/>

Mike

> Rob Hills
> Waikiki, Western Australia
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to