Ok, this question is best explained in code. So will try to present the most succinct example I can. Timestamped.java
@Embeddable public class Timestamped<E> { private E value; ...