Festlegen nur-lese-Spalten Überwintern?

Ich weiß nicht, wie zu zwingen, nur-lese-Spalten in den Ruhezustand versetzt werden.

Ich würde gerne idgroup als nur-Lesen-Spalte. Auch wenn ich insertable=false und updatable=false, in der hibernate-SQL Lesen kann ich:

Hibernate: insert into groups (description, name, account_idaccount, idgroup) values (?, ?, ?, ?) 

aber ich würde gerne erhalten:

insert into groups (description, name, account_idaccount) values (?, ?, ?) 

Hier sind meine Klassen:

@Entity
@Table(name = "groups")
public class Group implements java.io.Serializable {

private static final long serialVersionUID = -2948610975819234753L;
private GroupId id;
private Account account;
private String name;
private String description;

@EmbeddedId
@AttributeOverrides({@AttributeOverride(name = "idgroup", column = @Column(name = "idgroup", insertable = false)),
        @AttributeOverride(name = "accountIdaccount", column = @Column(name = "account_idaccount", nullable = false))})
public GroupId getId() {
    return id;
}

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "account_idaccount", nullable = false, insertable = false, updatable = false)
public Account getAccount() {
    return account;
}

@Column(name = "description", length = 512)
public String getDescription() {
    return description;
}


@Column(name = "name", nullable = false, length = 128)
public String getName() {
    return name;
}
..
}
@Embeddable
public class GroupId implements java.io.Serializable {

private int idgroup;
private int accountIdaccount;

@Column(name = "idgroup", insertable= false, updatable= false)
public int getIdgroup() {
    return this.idgroup;
}


@Column(name = "account_idaccount", nullable = false)
public int getAccountIdaccount() {
    return this.accountIdaccount;
}
..
}

Ich würde gerne einen nur-lese Spalte für idgroup da kann ich ausnutzen-id automatische Generierung von DBMS, die ich nicht wollen, verwenden Sie die automatische key-Generierung in den Ruhezustand, weil es ist nicht cluster-safe.

haben Sie einen Blick auf docs.jboss.org/hibernate/orm/3.5/reference/en-US/html/... und ndpsoftware.com/HibernateMappingCheatSheet.html - Sie kann dir Hinweise geben
Dank Rachel, aber der erste link bezieht sich auf "nur Lesen" - Entitäten, und ich sehe nicht, das zweite nützlich zu meinem Fall
ah gut. dachte, Sie könnte die optimistische Sperre auf true
Ist es gut für Sie, wenn hibernate anstatt zu versuchen nicht zu bestehen Ihrer readonly-Wert einfach beibehalten, immer das gleiche, was er gesammelt, wenn die erste Einheit von dbms?
das problem ist, wenn ich erstellen Sie eine Instanz von Java, und ich möchte, um es zu speichern in der Datenbank, auch wenn ich nicht initialisieren, die idgroup, hibernate schreibt 0, weil es der Standardwert für int.

InformationsquelleAutor daniele | 2013-01-31

Schreibe einen Kommentar