Hi everyone,
Ihave a class named AbstractUser which is:
/** * * @hibernate.class table="user" * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public abstract class AbstractUser implements ValueObject {
protected PK primaryKey;
protected String password;
public PrimaryKey getPrimaryKey() { return getPK(); }
public void setPrimaryKey(PrimaryKey pk) { this.primaryKey = (PK)pk; }
public void setPrimaryKey(Serializable pk) { if (pk instanceof Collection) { Collection c = (Collection)pk; Iterator it = c.iterator(); setPrimaryKey(new PK(((Long)it.next()).longValue(), (String)it.next())); } else { } }
/** * @hibernate.id generator-class="assigned" */ private PK getPK(){ return this.primaryKey; }
/** * @hibernate.property */ public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public static class PK implements PrimaryKey {
private long code; private String login;
public PK() { this(-1,null); }
public PK(long code, String login) { this.code = code; this.login = login; }
/** * @hibernate.property */ public long getCode() { return this.code; }
/** * @hibernate.property */ public String getLogin(){ return this.login; }
public boolean equals(Object o){ AbstractUser.PK pk = (AbstractUser.PK) o; if (this.code == pk.getCode() && this.login.equals(pk.getLogin())){ return true; } else{ return false; } } }
}
After running hibernatedoclet task it s mapped to:
<hibernate-mapping> <class name="com.smartprice.eb.valueobject.AbstractUser" table="user" dynamic-update="false" dynamic-insert="false"
<composite-id name="PK" class="com.smartprice.eb.valueobject.AbstractUser.PK"
<key-property name="code" type="long" column="code" />
<key-property name="login" type="java.lang.String" column="login" />
</composite-id>
...
Shouldn't the class name be "com.smartprice.eb.valueobject.AbstractUser$PK", as PK is an inner class of AbstractUser? If i run the Hibernate hbm2ddl tool it says that it cant find the "com.smartprice.eb.valueobject.AbstractUser" class. If i change it to "com.smartprice.eb.valueobject.AbstractUser$PK", it works fine.
Speaking of composite keys, i have a class name admin which extends from AbstractUser. Which tag should i use to create the following mapping:
<joined-subclass name="com.smartprice.eb.valueobject.Admin" dynamic-update="false" dynamic-insert="false">
<key>
<column name="code"/>
<column name="login"/>
<key/>
</joined-subclass>
regards,
Leorazuk
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user