Actually there will be a new concept in the next EJB3 draft, which will allow you to share some annotations between different entities provided that they share a common superclass and that this superclass is *not* an entity
So basically
public class WidgetBase { @Column(name="column") public String property1; } @Entity public class MyWidget extends BaseWidget { @Id(generate=GeneratorType.AUTO) public Integer id; @Column(name="column2") public String property2; }