Should your UUID class have an embeddable annotation also? On Thu, Jul 7, 2011 at 4:27 PM, Matthew Goodson <matt...@spidertracks.co.nz>wrote:
> Hi, > > Kevin: We're using maven and it is picking up the Phone_ class and > generating the warning > > here's the link for the uuid class that we're using > > https://github.com/stephenc/eaio-uuid/blob/master/src/main/java/com/eaio/uuid/UUID.java > > And the persistence xml... > > <persistence xmlns="http://java.sun.com/xml/ns/persistence" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/persistence > http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" > version="2.0"> > <persistence-unit name="openjpa"> > > <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> > > > <!-- base package --> > <class>com.spidertracks.aviator.model.Persistable</class> > <class>com.spidertracks.aviator.model.UuidEntity</class> > > > <!-- cluster --> > <class>com.spidertracks.aviator.model.cluster.ClusterRegion</class> > <class>com.spidertracks.aviator.model.cluster.SpiderRegion</class> > > <!-- security --> > > > <class>com.spidertracks.aviator.model.security.AviatorRememberMeToken</class> > > <!-- sms --> > <class>com.spidertracks.aviator.model.sms.PhoneValidationMessage</class> > <class>com.spidertracks.aviator.model.sms.ReceivedSmsMessage</class> > <class>com.spidertracks.aviator.model.sms.SentSmsMessage</class> > <class>com.spidertracks.aviator.model.sms.SmsMessage</class> > <class>com.spidertracks.aviator.model.sms.SosClosedMessage</class> > > <class>com.spidertracks.aviator.model.sms.SosInvalidResponseMessage</class> > <class>com.spidertracks.aviator.model.sms.SosMessage</class> > <class>com.spidertracks.aviator.model.sms.SosTierOneMessage</class> > > > <class>com.spidertracks.aviator.model.sms.SosTierOneReopenedUserMessage</class> > <class>com.spidertracks.aviator.model.sms.SosTierTwoMessage</class> > > > <class>com.spidertracks.aviator.model.sms.SosTierTwoReopenedUserMessage</class> > <class>com.spidertracks.aviator.model.sms.SosTierTwoUserMessage</class> > > > <!-- Sos --> > <class>com.spidertracks.aviator.model.sos.ContactedPerson</class> > <class>com.spidertracks.aviator.model.sos.OpenHistory</class> > <class>com.spidertracks.aviator.model.sos.SoS</class> > > <!-- spider --> > <class>com.spidertracks.aviator.model.spider.Spider</class> > > <!-- message --> > > > <class>com.spidertracks.aviator.model.spider.message.AlertAcknowlege</class> > > > <class>com.spidertracks.aviator.model.spider.message.ConfigMessageUpdate</class> > > > <class>com.spidertracks.aviator.model.spider.message.DistanceSettings</class> > > > <class>com.spidertracks.aviator.model.spider.message.MobileTerminatedConfirmation</class> > > <class>com.spidertracks.aviator.model.spider.message.SpiderUpdate</class> > > > <class>com.spidertracks.aviator.model.spider.message.SpiderwatchSettings</class> > > > <class>com.spidertracks.aviator.model.spider.message.TimeDistanceSettings</class> > > <class>com.spidertracks.aviator.model.spider.message.TimeSettings</class> > <class>com.spidertracks.aviator.model.spider.message.WatchOff</class> > <class>com.spidertracks.aviator.model.spider.message.WatchOn</class> > > > <!-- user --> > <class>com.spidertracks.aviator.model.user.ContactLink</class> > <class>com.spidertracks.aviator.model.user.Address</class> > <class>com.spidertracks.aviator.model.user.Customer</class> > > <class>com.spidertracks.aviator.model.user.EmailConfirmationToken</class> > <class>com.spidertracks.aviator.model.user.HashedUserToken</class> > <class>com.spidertracks.aviator.model.user.InvitedPerson</class> > <class>com.spidertracks.aviator.model.user.PasswordResetToken</class> > <class>com.spidertracks.aviator.model.user.Person</class> > <class>com.spidertracks.aviator.model.user.User</class> > <class>com.spidertracks.aviator.model.user.Vehicle</class> > <class>com.spidertracks.aviator.model.user.Phone</class> > > <properties> > <property name="me.prettyprint.hom.classpathPrefix" > value="com.datastax.hectorjpa.bean" /> > <property name="me.prettyprint.hom.keyspace" value="TestKeyspace" /> > <property name="me.prettyprint.hom.clusterName" value="TestPool" /> > <property name="me.prettyprint.hom.hostList" value="localhost:9161" /> > <property name="openjpa.BrokerFactory" value="abstractstore" /> > > <property name="openjpa.abstractstore.AbstractStoreManager" > value="com.datastax.hectorjpa.store.CassandraStoreManager" /> > <property name="openjpa.MetaDataRepository" > value="com.datastax.hectorjpa.store.CassandraMetaDataRepository" /> > > <property name="openjpa.Optimistic" value="false" /> > <property name="openjpa.LockManager" value="none" /> > <property name="openjpa.ConnectionURL" value="localhost:9161" /> > <!-- explicitly disable runtime enhancement support. It breaks a lot > of proxy functionality needed for indexing --> > <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" > /> > > <property name="openjpa.DetachState" > value="all(DetachedStateField=true)"/> > > <!-- Used to test the serialization property. If not set will default > to java default serialization --> > <property name="com.datastax.jpa.embeddedserializer" > value="com.datastax.hectorjpa.serialize.XStreamSerializer" /> > <property name="openjpa.EntityManagerFactory" > value="me.prettyprint.hom.EntityManagerFactoryImpl" /> > > </properties> > </persistence-unit> > > </persistence> > > > On Fri, Jul 8, 2011 at 3:36 AM, Kevin Sutter <kwsut...@gmail.com> wrote: > > > Why are we attempting to enhance a generated metamodel class? > > > > "class com.spidertracks.aviator.model.user.Phone_" > > > > Classes that end in an underscore were probably generated for the > metamodel > > and/or criteria API usage. So, something seems out of whack with > > attempting > > to enhance these classes. > > > > Kevin > > > > On Thu, Jul 7, 2011 at 7:53 AM, Rick Curtis <curti...@gmail.com> wrote: > > > > > Can you post your UUID class and the contents of your persistence.xml? > > > > > > Thanks, > > > Rick > > > > > > On Wed, Jul 6, 2011 at 11:09 PM, Matthew Goodson < > > > matt...@spidertracks.co.nz > > > > wrote: > > > > > > > Just adding the class for reference > > > > > > > > @Embeddable > > > > //public class Phone extends EmbeddedUUID implements WebOptionString, > > > > Serializable { > > > > public class Phone implements WebOptionString, Serializable { > > > > > > > > private static final long serialVersionUID = 1L; > > > > > > > > @Persistent > > > > private UUID id; > > > > @Persistent > > > > @NotEmpty(message = "{phone.number.required}") > > > > @NumericString(message = "{phone.number.digitsonly}") > > > > private String number; > > > > > > > > @Persistent > > > > private String countryIdd; > > > > > > > > @Persistent > > > > @NotNull(message = "{phone.country.required}") > > > > private String iddCountryCode; > > > > > > > > @Persistent > > > > @NotNull(message = "{phone.type.required}") > > > > private PhoneType type; > > > > > > > > public Phone() { > > > > id = new UUID(); > > > > } > > > > > > > > public Phone(String number, Country country, PhoneType type) { > > > > this(); > > > > this.number = number; > > > > this.type = type; > > > > setIddCountry(country); > > > > } > > > > > > > > public void setNumber(String number) { > > > > this.number = number; > > > > } > > > > > > > > public String getNumber() { > > > > return number; > > > > } > > > > > > > > public void setType(PhoneType type) { > > > > this.type = type; > > > > } > > > > > > > > public PhoneType getType() { > > > > return type; > > > > } > > > > > > > > @Override > > > > public String getDisplayString() { > > > > return number; > > > > } > > > > > > > > public void setIddCountry(Country country) { > > > > if (country != null) { > > > > this.iddCountryCode = country.getCode(); > > > > this.countryIdd = country.getIdd(); > > > > } > > > > } > > > > > > > > public Country getIddCountry() { > > > > if (iddCountryCode != null) { > > > > return CountryFactory.INSTANCE.getByCode(this.iddCountryCode); > > > > } > > > > return null; > > > > } > > > > > > > > public String getIddCountryCode() { > > > > return iddCountryCode; > > > > } > > > > > > > > public String getFullNumber() { > > > > return (countryIdd == null ? "" : countryIdd) + (number == null ? "" > : > > > > number); > > > > } > > > > public void clone(Phone other) { > > > > Assert.notNull(other); > > > > setIddCountry(other.getIddCountry()); > > > > setNumber(other.getNumber()); > > > > setType(other.getType()); > > > > } > > > > > > > > public UUID getId() { > > > > return id; > > > > } > > > > public void setId(UUID id) { > > > > Assert.notNull(id); > > > > this.id = id; > > > > } > > > > } > > > > > > > > > > > > On Thu, Jul 7, 2011 at 3:36 PM, Matthew Goodson > > > > <matt...@spidertracks.co.nz>wrote: > > > > > > > > > Hi guys. I have a problem with jpa enhancement. > > > > > I am using version 2.1.0 and I am trying to get it to enhanced an > > > object > > > > > 'Phone' with a field 'id' which is of type com.eaio.UUID. However > > when > > > I > > > > run > > > > > the enhancement I get the 2 warnings below. > > > > > Any ideas? > > > > > > > > > > 411 openjpa WARN [main] openjpa.MetaData - Field " > > > > > com.spidertracks.aviator.model.user.Phone.id" is not a type that > is > > > > > persistent by default. If you want this field to be persistent, > you > > > have > > > > to > > > > > explicitly set it to persistent in your metadata. > > > > > > > > > > 681 openjpa WARN [main] openjpa.Enhance - Type "class > > > > > com.spidertracks.aviator.model.user.Phone_" loaded by > > > > > java.net.URLClassLoader@69dfe453 has no metadata; enhancing as > > > > persistence > > > > > aware. If you intended for "class > > > > > com.spidertracks.aviator.model.user.Phone_" to be > > persistence-capable, > > > > then > > > > > this means that OpenJPA could not find any metadata for "class > > > > > com.spidertracks.aviator.model.user.Phone_". This can happen if the > > > > > directory containing your metadata is not in your CLASSPATH, or if > > your > > > > > metadata files are not named properly. See the documentation on > > > metadata > > > > > placement for more information. > > > > > > > > > > > > > > > > > > > > > -- > > > *Rick Curtis* > > > > > > > > > -- > > Matthew > > Software Engineer > > Matthew Goodson | spidertracks > > po box 5203 | 117a the square | Palmerston North 4441 | new zealand > > P: +64 6 353 3395 | M: +64 27 6969639 > > E: *matt...@spidertracks.co.nz* <matt...@spidertracks.co.nz> * > www.spidertracks.com* > > spiderwatch - because in the rescue game, time = life. > -- *Rick Curtis*