I am using prePersist callback to set the defaults.
Wouldn't mind having it set via Modeler (and you do correctly point
out to the problems with String to data type conversion). So this was
'Cayenne-only default values'.
Now if we are talking about syncing Cayenne with DB default values,
this becomes a bit more tricky, as on INSERT JDBC driver does not pass
back the default values that were set. Although I guess if we know
them from the mapping, we can just automatically apply them to objects
to suppress DB setting them.
Anyways, maybe that's another candidate to be implemented as "internal
callback listener" initiated from the model.
Andrus
On Oct 1, 2008, at 8:01 PM, Andrey Razumovsky wrote:
Hello,
It seems DB column default values are not supported in Cayenne. This
is no
good, and even worse, I cannot setup those values at database level,
because
Cayenne will nullify them anyways - InsertBatchQueryBuilder creates
insert
for all DbAttributes. I think that if we support max-length and
scale, we
should support this too. BTW, I was told Hibernate supports this
feature.
At best we should have that property in DbAttribute and use it along
DB
engineering and reverse-engineering. Of course this is no easy task,
because
we have different types of attributes, e.g. dates (I mean modeler
support
here).
Currently the best way to workaround seems to be setting default
values in
constructor.
What do you think?