У меня есть класс, аннотированный с @Entity, который хранится в базе данных. Теперь то, что я хочу сделать, это продлить его, но класс ребенок не должен быть сохранен на всех:Аннотировать объект с @Transient
@Entity(name = "A")
public abstract class A {
private String field;
public String getField() {
return field;
}
public abstract void print();
}
public class B extends A {
@Override
public void print() {
System.out.println(getField());
}
}
Почему я не могу комментировать B с @Transient, чтобы предотвратить создание дополнительных ненужных записей в базе данных? Возможно, я пропустил что-то важное?
@Transient - это аннотация JAX-B, используемая для контроля того, какие поля обращаются к/из XML и не имеет никакого отношения к JPA, поэтому она не имеет никакого эффекта. – Pace
@Pace '@ Transient' представляет собой аннотацию JPA (она также относится к сохранению пакета) и используется для полей, которые не являются постоянными: http://docs.oracle.com/javaee/5/api/javax/persistence/ Transient.html –
Вы правы. У меня было это полностью назад в голове. Сожалею. – Pace