JPA Attribute Converter: Difference between revisions
Jump to navigation
Jump to search
Line 24: | Line 24: | ||
<syntaxhighlight lang='java'> | <syntaxhighlight lang='java'> | ||
@Convert(converter = PayloadConverter.class) | @Convert(converter = PayloadConverter.class) | ||
private | private Payload payload; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 20:23, 31 October 2018
External
- https://www.thoughts-on-java.org/jpa-21-how-to-implement-type-converter
- https://www.thoughts-on-java.org/jpa-21-type-converter-better-way-to/
Internal
Overview
An attribute converter allows the developer to specify methods to convert between the database and the Java representation of an attribute.
Playground Example
Programming Model
@Convert Annotation
Annotate the entity fields to be converter with @javax.persistence.Convert:
@Convert(converter = PayloadConverter.class)
private Payload payload;
The Converter Class
Provide a converter class, which must implement AttributeConverter<Entity-Field-Type, Database-Type> and be annotated with @javax.persistence.Converter:
@Converter
public class PayloadConverter implements AttributeConverter<String, String> {
@Override
public String convertToDatabaseColumn(String attribute) {
return swapLetters(attribute);
}
@Override
public String convertToEntityAttribute(String dbData) {
return swapLetters(attribute);
}
private String swapLetters(String s) {
...
}
}