2014-06-24 14:55 GMT+02:00 Emmanuel Bernard <emman...@hibernate.org>:
> > On 24 Jun 2014, at 11:50, Gunnar Morling <gun...@hibernate.org> wrote: > > Yes, today we don't. > > But is there any reason for not using the value column name? > > > Not more that the ones I outlined in this thread. > > In fact that's what my pending PR > https://github.com/hibernate/hibernate-ogm/pull/337 does for MongoDB. > Right now it even allows to work with different value column names for the > same table (either in the same or in different documents/records) but I > plan to add a check disallowing this for the sake of portability to stores > with a fixed schema. > > > I don’t follow that one. A fixed schema would be fine here, just with two > columns instead of one, no? > Yes, this could work, though I'm not sure when one would actually want to make use of such an approach. I guess we can leave it out for now and wait until we actually have store with a fixed schema. Btw. ORM itself stumbles upon such configuration (the table is generated with one of the two columns, causing an error when trying to select from the other one). > > > > 2014-06-20 13:00 GMT+02:00 Emmanuel Bernard <emman...@hibernate.org>: > >> >> On 19 Jun 2014, at 14:54, Gunnar Morling <gun...@hibernate.org> wrote: >> >> valueColumnName is something that I elected no to use because NoSQL we >>>> bind to so far do not have a strong schema. And at at given >>>> segmentColumnValue only correspond a single value. It would come and bite >>>> me if someone for the same segment value had two different value column >>>> names to differentiate two different sequence. >>> >>> >>> Would it really bite you? I think e.g. MongoDB could perfectly handle >>> this case via two different fields for the two sequences in the same >>> document/segment. >>> >>> >>> @TableGenerator( >>> name=“1”, >>> table=“Seq_table”, >>> pkColumnName=“key”, >>> pkColumnValue=“1”, >>> valueColumnName=“value1” >>> ) >>> @TableGenerator( >>> name=“2”, >>> table=“Seq_table”, >>> pkColumnName=“key”, >>> pkColumnValue=“1”, >>> valueColumnName=“value2” >>> ) >>> >>> The two definitions share the same options except for valueColumnName. >>> The table is roughly as followed >>> >>> TABLE(Seq_table) >>> key | value1 | value2 >>> 1 | 10 | 24 >>> >>> What would be the MongoDB representation in your approach? >>> >> >> It would look like this: >> >> { >> "_id" : 1, >> "value1" : 10, >> "value2" : 24 >> } >> >> So you would get the different sequence values from different fields of >> that same document. But I wouldn't recommend to do so due to the potential >> contention on that single record. Thus I'd raise at least a warning during >> bootstrap. As it's not portable to stores with a fixed schema, I'd rather >> not support it at all, though, and raise an error. >> >> >> Exactly. But that’s the thing, AFAIK we do *not* store it that way today >> as we don’t use valueColumnName. So today we store it like this >> >> { >> “_id”: 1, >> “sequence_value”: 10 >> } >> >> so 10 and 24 has to both live at the same time in sequence _value. >> >> > > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev