Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use non-sequential id for loopback model?

Loopback uses sequential number for model ID. Can I use my own ID generator on server side? How do I go about doing that?

like image 758
Sam Avatar asked Apr 14 '16 20:04

Sam


2 Answers

It is possible to specify Loopback generators (guid, uuid, ...) as a default function for id properties in your model definition file.

example with guid:

{
  "name": "ModelName",
  "base": "PersistedModel",
  "idInjection": false,
  "properties": {
    "id": {
      "type": "string",
      "id": true,
      "defaultFn": "guid"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

As far as I know, you can't specify there your own default function yet. See related github issue.

If you want more advanced behavior (e.g. your own generator), you can create models/model-name.js file and extend a constructor of your model.

like image 70
Ivan Schwarz Avatar answered Sep 21 '22 18:09

Ivan Schwarz


If you use Loopback 4 then this is the setting for generating UUID in prime key. Inside you Model change this.

@property({
type: 'string',
id: true,
defaultFn: 'uuidv4',

}) id?: string;

This is the way to gen a unique id in your table.

like image 40
erevos13 Avatar answered Sep 21 '22 18:09

erevos13