Some databases support VIEWs.   You can make your database view parse
and sort your varchar field into four fields.

But you have to treat inserting/updating a record differently than
viewing it if you go this route.

On Tue, Feb 2, 2010 at 7:45 PM, Marek Šabo <[email protected]> wrote:
> Hi all,
>
> I would like to ask you two questions:
>
> 1) Is there any way to sort varchar fields which happen to numbers, more
> precisely ipv4s?
> query.addOrdering(Ip4Address.IP_ADDRESS_PROPERTY, SortOrder.ASCENDING);
> This of course sets the hundreds as first in line, any tips on some
> custom sorting?
>
> 2) I was filling ip table with available ranges like this:
>
> ObjectContext oc = DataContext.getThreadObjectContext();
>
>        for (int i = 33; i < 255; i++) {
>
>            Ip4Address ip = oc.newObject(Ip4Address.class);
>
>            ip.setIpAddress("XX.XX.XX." + i);
>
>            ip.setUsed(Boolean.FALSE);
>
>            ip.setNat(Boolean.FALSE);
>
>        }
>
> but cayenne inserted rows like this (probably hashed order for
> optimization):
>
> INFO  - QueryLogger                - [bind: 1->ipAddress:'XX.XX.XX.97', 
> 2->nat:'false', 3->used:'false']
>
> INFO  - QueryLogger                - Generated PK: Ip4Address.id = 1
>
> INFO  - QueryLogger                - === updated 1 row.
>
> INFO  - QueryLogger                - [bind: 1->ipAddress:'XX.XX.XX.71', 
> 2->nat:'false', 3->used:'false']
>
> INFO  - QueryLogger                - Generated PK: Ip4Address.id = 2
>
> INFO  - QueryLogger                - === updated 1 row.
>
>
> Is there any way how to override this mechanism in order to preserve
> order of inserted rows?
>
> TIA,
>
> --
> Marek Šabo
>
>

Reply via email to