Dobry den,
a co dat sloupci default hodnotu v SQL?
Jirka
Ondřej Žižka napsal(a):
Zdravím,
už se to tu jednou řešilo:
http://java.cz/konference/2005-December/007592.html
Chtěl bych při INSERTu přes Hibernate vložit do NOT NULL sloupce hodnotu
vrácenou z NOW().
Chtěl bych řešení v rámci Hibernate - nechci ukládat lokálně vytvořený
Date objekt. Nechci ani škrtnout NOT NULL a dát TRIGGER, který nastaví
sloupec na NOW().
V Hibernate jsem našel "custom CRUD commands",
http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/doc/hibernate/Annotations_Reference_Guide/Hibernate_Annotation_Extensions-Custom_SQL_for_CRUD_operations.html
Ale to má velkou nevýhodu - při změně schématu budu muset vyhledat a
změnit daný příkaz.
Já bych si představoval takové řešení:
@Entity
class User {
@Id private Long id;
private String jmeno;
@Temporal
@SQLInsert( sql="NOW()" )
@org.hibernate.annotations.Generated(GenerationTime.INSERT)
@Column( insertable=false, updatable=false )
private Date zalozen;
}
Takto by hibernate pro INSERT generoval SQL "INSERT INTO users (...,
zalozen) VALUES (..., NOW() )".
Navíc by se obecně dala použít vkládaná hodnota, např. @SQLInsert(
sql="SQRT(?)" )
Existuje něco takového? Já zatím nic nenašel.
Díky za jakékoliv tipy,
Ondra
--
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic