Skip to content

Instantly share code, notes, and snippets.

@nakamura-to
Created May 27, 2016 21:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save nakamura-to/91b6da40aa5ae13f8fa522a13a690e67 to your computer and use it in GitHub Desktop.
Save nakamura-to/91b6da40aa5ae13f8fa522a13a690e67 to your computer and use it in GitHub Desktop.
Doma external embeddable
@Entity
public class Era {
@Id
public Integer id;
public String name;
public Interval interval;
}
create table era {
id integer primary key,
name varchar(100),
start bigint,
end bigint,
}
@Embeddable
public class IntervalAdapter {
private final long start;
private final long end;
public IntervalAdapter(long start, long end) {
this.start = start;
this.end = end;
}
// getter, setter
}
@ExternalEmbeddable
public class IntervalConverter implements EmbeddableConverter<Interval, IntervalAdapter> {
public IntervalAdapter fromEmbeddableToAdapter(Interval interval) {
return new IntervalAdapter(interval.getStartMillis(), interval.getEndMillis());
}
public Interval fromAdapterToEmbeddable(IntervalAdapter adapter) {
return new Interval(adapter.getStart(), adapter.getEnd());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment