query = "select a from Author a where a.birthdate = :birthdate"
)
})
-public class Author extends DomainObject {
+public class Author extends DomainObject<Author> {
public static final String FIND_ALL = "Author.findAll";
public static final String FIND_BY_ID = "Author.findById";
public static final String FIND_BY_NAME = "Author.findByName";
public static final String FIND_BY_BIRTHDATE = "Author.findByBirthDate";
- public static final String NAME_PROPERTY = "name";
- public static final String BIRTHDATE_PROPERTY = "birthdate";
+ public static final String NAME_PARAMETER = "name";
+ public static final String BIRTHDATE_PARAMETER = "birthdate";
@Id
@Column(
return target;
}
+ @Override
+ public Long getId() {
+ return id;
+ }
+
}
*
* @author Dmitry Samoshin aka gotty
*/
-public abstract class DomainObject {
+public abstract class DomainObject<DomainObjectType extends DomainObject> {
- public static final String ID_PROPERTY = "id";
+ public static final String ID_PARAMETER = "id";
+
+ public abstract Long getId();
+
+ public boolean isIdentical(DomainObjectType another) {
+ if (another == null)
+ return false;
+
+ if ((getId() == null) != (another.getId() == null))
+ return false;
+
+ if ((getId() == null) && (another.getId() == null))
+ return true;
+
+ return getId().equals(
+ another.getId()
+ );
+ }
}
query = "select e from Etude e where e.blob = :blob"
)
})
-public class Etude extends DomainObject {
+public class Etude extends DomainObject<Etude> {
public static final String FIND_ALL = "Etude.findAll";
public static final String FIND_BY_ID = "Etude.findById";
public static final String FIND_BY_AUTHOR = "Etude.findByAuthor";
public static final String FIND_BY_BLOB = "Etude.findByBlob";
- public static final String HASH_PROPERTY = "hash";
- public static final String TYPE_PROPERTY = "type";
- public static final String AUTHOR_PROPERTY = "author";
- public static final String BLOB_PROPERTY = "blob";
+ public static final String HASH_PARAMETER = "hash";
+ public static final String TYPE_PARAMETER = "type";
+ public static final String AUTHOR_PARAMETER = "author";
+ public static final String BLOB_PARAMETER = "blob";
@Id
@Column(
return position;
}
+ @Override
+ public Long getId() {
+ return id;
+ }
+
}
query = "select et from EtudeType et where et.brief = :brief"
)
})
-public class EtudeType extends DomainObject {
+public class EtudeType extends DomainObject<EtudeType> {
public static final String FIND_ALL = "EtudeType.findAll";
public static final String FIND_BY_ID = "EtudeType.findById";
public static final String FIND_BY_BRIEF = "EtudeType.findByBrief";
- public static final String BRIEF_PROPERTY = "brief";
+ public static final String BRIEF_PARAMETER = "brief";
@Id
@Column(
return target;
}
+ @Override
+ public Long getId() {
+ return id;
+ }
+
}