Suponiendo que tengo esta clase:¿Puedo usar el patrón de diseño del constructor junto con Hibernate?
public class MyEntity {
private int id;
private String name;
private MyEntity(int id, String name) {this.id= id; this.name = name;}
public static class MyEntityBuilder {
private int id;
private String name;
private MyEntityBuilder setId(int id) {this.id = id;}
private MyEntityBuilder setName(String name) {this.name = name;}
private MyEntity build() {return new MyEntity(id,name);}
}
private int getId() {return id;}
private String getName() {return name;}
}
¿Puedo utilizar las anotaciones de hibernación para asignarlo a una mesa?
es eso así? Pensé que si eliges el acceso a la propiedad (colocas @Column en la propiedad, no en los métodos de acceso), ¿puedes hacerlo con setters in hibernate? o hazlos de praya privados ... ¿qué pasa con la clase interna de Builder del patrón? ¿Es eso un problema para Hibernate? – bert
@bert cuidado con su redacción: lo que usted describe es acceso de campo, no acceso a la propiedad. En Java, una propiedad se define por sus métodos getter y/o setter, no por el campo subyacente. Podría funcionar al anotar campos, pero no si los campos están marcados como finales (lo que se consideraría una buena práctica para los objetos creados con un generador). No, la clase interna no es un problema, siempre que sea estática y no esté marcada como @Entity. –
gracias. Y usted está por supuesto correcto. Quise decir acceso a la propiedad. Mi caso de uso es donde los campos mapeados son 'actualizable = falso' y quiero aplicar eso en la API. – bert