Учитывая следующие классы и интерфейс мне интересно, как JPA обрабатывает его: пребываниеУпорство реализации, которая не имеет никаких свойств
public interface Operator{
public String getOperator();
}
Давайте я тогда две реализации этого класса:
public class PlusOperation implements Operator, Serializable {
public String getOperator(){
return "+";
}
}
И :
public class MinusOperation implements Operator, Serializable {
public String getOperator(){
return "-";
}
}
Там существует класс, помеченный как @Entity
, который имеет ар roperty Operator
:
@Entity
public class Function {
@Id @GeneratedValue
private Long id;
private Operator operator;
// Other methods & properties omitted for clarity
}
В классе функций, следовательно, он может провести либо PlusOperation
или MinusOperation
и ни один из этих классов были аннотированный с @Entity
, поскольку они не имеют каких-либо свойств, которые требуют сохраняющиеся, но каждый из них разные , Как JPA справляется с этим? При сохранении объекта Function
оно автоматически (и «за кулисами») маркирует свойство operator
с правильной реализацией Operation
?
Сущность - способ хранения ** данных **. Не способ хранения поведения. Это полное злоупотребление ORM. Не. –
В любом случае это не сработает, поскольку единственный способ сохранить оператора - это сериализовать его, и это не Serializable. –
Борис, я согласен, но это то, с чем мне нужно работать, поэтому вопрос остается. Также JB Nizet я реализовал интерфейс Serializable. – Kerry