Class AbstractEto
- java.lang.Object
-
- com.devonfw.module.basic.common.api.to.AbstractTo
-
- com.devonfw.module.basic.common.api.to.AbstractGenericEto<Long>
-
- com.devonfw.module.basic.common.api.to.AbstractEto
-
- All Implemented Interfaces:
GenericEntity<Long>,Serializable
- Direct Known Subclasses:
RevisionedEto
public abstract class AbstractEto extends AbstractGenericEto<Long>
This is the abstract base class for antransfer-objectthat contains all the data properties of anentitywithout its relations. This is called ETO (entity transfer object). Sometimes in other contexts people also call this DTO (data transfer object).
Here, data properties are the properties using a datatype (immutable value type such asString,Number,Instant, custom-datatype, etc.). Relations of an @link GenericEntity entity} are not contained except forIDsofOneToOnerelations. Instead of usingLongwe recommend to useIdRefto be type-safe and more expressive. For actual relations you will useCTOs to express what set of entities to transfer, load, save, update, etc. without redundancies.
Classes extending this class should carry the suffixEto.- Since:
- 3.0.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractEto.PersistentEntityAccessDeprecated.UseAbstractGenericEto.PersistentEntityAccessinstead.
-
Constructor Summary
Constructors Constructor Description AbstractEto()The constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LonggetId()voidsetId(Long id)protected voidtoString(StringBuilder buffer)Method to extendAbstractTo.toString()logic.-
Methods inherited from class com.devonfw.module.basic.common.api.to.AbstractGenericEto
getModificationCounter, setModificationCounter
-
Methods inherited from class com.devonfw.module.basic.common.api.to.AbstractTo
toString
-
-
-
-
Method Detail
-
getId
public Long getId()
- Returns:
- the primary key (unique identifier) of this entity. May be
nullif this entity is transient (not yetsavedin the database). While this method is initially defined in a generic way, it is strongly recommended to useLongas datatype for IDs.
Even if you want to have aString-based business-oriented identifier it is best practice to use aLongas primary key and add the business identifier as additional field (with a unique constraint). This way references to the entity will be a lot more compact and improve your performance in JOINs or the like. However, there may be reasons to use other datatypes for the ID. In any case the unique ID should be an immutable java-object that can be rebuild from itsstring-representation.
Please note that if your ID has a specific syntax, semantic, formatting rules, etc. you should create a custom datatype for it. If it can easily be mapped to aLongvalue you can still useLonghere and provide a transient getter method that returns the your custom datatype from theLong. - See Also:
Id
-
setId
public void setId(Long id)
- Parameters:
id- the newprimary key. This method shall typically only be used by technical frameworks such as hibernate.
-
toString
protected void toString(StringBuilder buffer)
Method to extendAbstractTo.toString()logic.- Overrides:
toStringin classAbstractTo- Parameters:
buffer- is theStringBuilderwhere toappendthe string representation.
-
-