Tenho o seguinte cenário :
Uma classe abstrata que não é uma entity.
public abstract class AbstractMessage {
protected String textMessage;
public String getTextMessage() {
return textMessage;
}
public void setTextMessage(String textMessage) {
this.textMessage = textMessage;
}
}
E uma classe que é uma entity que extende essa casse abstrata
@Entity
@Table(name = "MessageLog")
@NamedQueries({
@NamedQuery(name = "MessageLog.findById", query = "select a from MessageLog a where a.id = :id"),
@NamedQuery(name = "MessageLog.findAll", query = "select a from MessageLog a")})
@AttributeOverride(name="textMessage", column=@Column(name="TextMessage"))
public class MessageLog extends AbstractMessage implements IEntity<Integer> {
private static final long serialVersionUID = 8575100237171444046L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "MessageLogId")
private Integer id;
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Override
@Column(name = "TextMessage", nullable = false)
public String getTextMessage() {
return super.textMessage;
}
@Override
public void setTextMessage(String textMessage) {
super.textMessage = textMessage;
}
//Existem outros atributos mas não vem ao caso.
Meu problema é que o atributo textMessage mesno sendo preechido e visualizado atraves do “inspect” no eclipse não é visualizado pelo entity manager. Qdo tento dar um insert na entity o jpa me diz que a campo textMessage é nulo.
Pergunto : Não é possível extender uam classse que não é uma entity e fazer um override no get referente ao atributo que eu quero que seja parte da entity ? O Jpa não permite isso ?
Vlw