Bom sou novo no java e estou com uma duvida.
Como faço para ignorar uma coluna de uma classe que foi marcada como @Embeddable?
Isso é possivel pois o @Transient não funciona neste caso?
Bom sou novo no java e estou com uma duvida.
Como faço para ignorar uma coluna de uma classe que foi marcada como @Embeddable?
Isso é possivel pois o @Transient não funciona neste caso?
Posta sua classe aqui para ajudar melhor…
Tente definir a sua propriedade como transiente também, exemplo:
class NameStore implements Serializable{
@Column
private String firstName;
//Aqui propriedade que será ignorada
@Transient
private transient String middleName;
@Column
private String lastName;
public NameStore (String fName, String mName, String lName){
this.firstName = fName;
this.middleName = mName;
this.lastName = lName;
}
public String toString(){
StringBuffer sb = new StringBuffer(40);
sb.append("First Name : ");
sb.append(this.firstName);
sb.append("Middle Name : ");
sb.append(this.middleName);
sb.append("Last Name : ");
sb.append(this.lastName);
return sb.toString();
}
}
public class TransientExample{
public static void main(String args[]) throws Exception {
NameStore nameStore = new NameStore("Steve", "Middle","Jobs");
ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("nameStore"));
// writing to object
o.writeObject(nameStore);
o.close();
// reading from object
ObjectInputStream in = new ObjectInputStream(new FileInputStream("nameStore"));
NameStore nameStore1 = (NameStore)in.readObject();
System.out.println(nameStore1);
}
}
Output
First Name : Steve
Middle Name : null // Middle Name é ignorado e nao é considerável para Persistencia ou Serialização
Last Name : Jobs
Olá boa tarde.
Esta é uma classe abstrata. Eu gostaria que os campos "result " e “error” fossem ignorados pois não são necessários no banco. mas a classe que herda de documentos o cpf por exemplo está marcada com @Embeddable na classe pessoa física.
Não sei se é possível mas pela logica deveria funcionar.
package pessoa.documents;
import java.beans.Transient;
import javax.persistence.Column;
import javax.persistence.MappedSuperclass;
/**
Classe abstrata utilizada para representar documentos como CPF,CNPJ RG entre
outros
@author diney 23/02/17
*/
@MappedSuperclass
public abstract class Documents {
@Column(name = “documento”)
protected String numero;
@Column(name = “expedicao”)
private String dataExpedicao;
@Column(name = “orgao_expedicao”)
private String orgaoExpeditor;
@Column(name = “UF_origem”)
private String UFOrigem;
/<em>@Transient</em>/
protected transient boolean result;
/<em>@Transient</em>/
protected transient String error;
public Documents() {
}
public Documents(String numero) {
docValidate(numero);
}
public Documents(String numero, String dataExped) {
docValidate(numero);
this.dataExpedicao = dataExped;
}
public Documents(String numero, String dataExped, String orgaoExped) {
docValidate(numero);
this.dataExpedicao = dataExped;
this.orgaoExpeditor = orgaoExped;
}
public Documents(String numero, String dataExped, String orgaoExped, String UFOrigem) {
docValidate(numero);
this.dataExpedicao = dataExped;
this.orgaoExpeditor = orgaoExped;
this.UFOrigem = UFOrigem;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
docValidate(numero);
}
public String getDataExpedicao() {
return dataExpedicao;
}
public void setDataExpedicao(String dataExpedicao) {
this.dataExpedicao = dataExpedicao;
}
public String getOrgaoExpeditor() {
return orgaoExpeditor;
}
public void setOrgaoExpeditor(String orgaoExpeditor) {
this.orgaoExpeditor = orgaoExpeditor;
}
public String getUFOrigem() {
return UFOrigem;
}
public void setUFOrigem(String UFOrigem) {
this.UFOrigem = UFOrigem;
}
protected void docValidate(String numero) {
boolean num = numero.matches("\d{3}\.\d{3}\.\d{3}-\d{2}");
if (num) {
this.numero = numero;
} else {
// this.error = “Numero do documento informado é inválido!”;
// this.result = false;
}
// return this.result;
}
}