Is there a possibility to annotate an embedded component to use some prefix to be applied to column name? otherwise if you include a component more than once in the same entity you get name clashes.
example:
Code:
@Embeddable
public class RouteInfo {
private Date time;
private Double counterValue;
private Double cashAmount;
// getters and setters here
}
@Entity
public class Route extends Persistent {
private RouteDefinition routeDefinition;
private String note;
private RouteInfo startInfo = new RouteInfo();
private RouteInfo finishInfo = new RouteInfo();
@Embedded
@AttributeOverrides({ @AttributeOverride(name = "time", column = @Column(name = "start_time")),
@AttributeOverride(name = "cashAmount", column = @Column(name = "start_cashAmount")),
@AttributeOverride(name = "counterValue", column = @Column(name = "start_counterValue")) })
public RouteInfo getStartInfo() {
return startInfo;
}
@Embedded
@AttributeOverrides({ @AttributeOverride(name = "time", column = @Column(name = "finish_time")),
@AttributeOverride(name = "cashAmount", column = @Column(name = "finish_cashAmount")),
@AttributeOverride(name = "counterValue", column = @Column(name = "finish_counterValue")) })
public RouteInfo getFinishInfo() {
return finishInfo;
}
// more getters and setters here
}
Any way to make it shorter? Annotations docs does not mention any possibility.