Where should I put Xdoclet tags, in interface or concrete implementation
class?
Here is example (user interface):
package com.fchaps.model;
/**
* The User
*
* @hibernate.class table="usr"
* mutable="true"
* proxy="com.fchaps.model.User"
*/
public interface User {
/**
* User identifier
*
* @hibernate.id column="usr_id"
* unsaved-value="null"
* generator-class="native"
*
* @return
*/
public Long getId();
public void setId(Long id);
/**
* User's username
*
* @hibernate.property column="username"
* not-null="true"
* unique="true"
*
* @return
*/
public String getUsername();
public void setUsername(String username);
/**
* User's password
*
* @hibernate.property column="password"
* not-null="true"
* unique="false"
*
* @return
*/
public String getPassword();
public void setPassword(String password);
/**
* User's type (the rights level)
*
* @hibernate.property column="type"
* not-null="false"
* unique="false"
*
* @return
*/
public UserType getType();
public void setType(UserType type);
/**
* If user is also a player then this is the player object for him
*
* @hibernate.many-to-one column="player_id"
* cascade="save-update"
* class="com.fchaps.model.Player"
* outer-join="auto"
* unique="false"
*
* @return
*/
public Player getPlayer();
public void setPlayer(Player player);
/**
* User's disabled status
*
* @hibernate.property column="disabled"
* not-null="false"
* unique="false"
*
* @return
*/
public Boolean isDisabled();
public void setDisabled(Boolean disabled);
}
As you see everything is written in interface. Does this work? I have
read the persisting classes should implement default constructor. That
is not possible here as I'm using interface. So this doesn't work? Or
does it?
If not then:
I could put these tags in concrete implementation class. Another
question raises. Should I then write many-to-one tags like this:
/**
* If user is also a player then this is the player object for him
*
* @hibernate.many-to-one column="player_id"
* cascade="save-update"
* class="com.fchaps.model.Player"
* outer-join="auto"
* unique="false"
*
* @return
*/
Or like this:
/**
* If user is also a player then this is the player object for him
*
* @hibernate.many-to-one column="player_id"
* cascade="save-update"
* class="com.fchaps.model.impl.PlayerImpl"
* outer-join="auto"
* unique="false"
*
* @return
*/
And is it ok to return interface (like the player in above interface)?
And should I specify proxy class as interface or implementation?
Next question:
If I cannot write Xdoclet tags in interface, then can this be changed to
allow @hibernate.class tag to get class attribute where I could tell the
implementing class? For example like this:
/**
* The User
*
* @hibernate.class class="com.fchaps.model.impl.UserImpl"
* table="usr"
* mutable="true"
* proxy="com.fchaps.model.User"
*/
Would this solve the problem I'm trying to tell?
Thanks!
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel