Manchmal ist es bequem, Objekte mit JPA aus der Datenbank zu holen, die ich in der aktuellen Anwendung gar nicht verändern möchte (oder nur bestimmte Felder). Nun erfordert JPA ja, dass die Objekte den Bean-Spezifikationen gehorchen, also Setter benötigen. Gibt vielleicht einen Trick, vollständig oder teilweise unveränderliche Objekte zu erzeugen, ohne auf die Bequemlichkeiten von JPA verzichten zu müssen?
Eine Variante wäre, mit Interfaces zu arbeiten:
"Normaler" Code würde dann nur das Interface zu Gesicht bekommen. Allerdings schreckt mich der Aufwand, für jede Klasse ein extra Interface zu basteln, etwas ab.
Eine Variante wäre, mit Interfaces zu arbeiten:
Java:
interface Foo {
String getId();
String getName();
}
@Entity
class FooImpl extends Foo {
String id;
String name;
@Id
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
"Normaler" Code würde dann nur das Interface zu Gesicht bekommen. Allerdings schreckt mich der Aufwand, für jede Klasse ein extra Interface zu basteln, etwas ab.