Я относительно новичок в спящем режиме, и одна из вещей, которые я обнаруживаю, заключается в том, что это иногда заставляет меня использовать иерархию больше, чем мне бы хотелось.
Я знаю, что невозможно сделать что-то вроде
public interface Storable {
public String getStorageLocation();
}
, а затем иметь
@Entity
public class Widget {
@Id
private int id;
@OneToOne
private Storable storable;
}
Хотя это не работает в спящем режиме, я думаю, что это лучшееВыбор OOD во многих случаях.В таких случаях считается дурным тоном иметь обходной путь, такой как
@Entity
public class Widget {
@Id
private int id;
private int storableId;
// this might also just be a string called type, which could
// be mapped to an obj at some point
private Class storableClass;
}
Я ненавижу это, но это ослабило бы меня с точки зрения соблюдения текущей объектной модели.Я полагаю, что это довольно распространенный сценарий, и мне интересно, как другие справились с этим.