Comments (12)
ok, this just worked for me in the entity level:
@PrimaryColumn({
name: "bt_brand_id",
length: 20,
type: "varchar",
})
public id!: string;
But if there's a way on the that lib level, i think i will prefer it
from crud.
Shipped with v3.0.0
from crud.
I think it's possible. We already have params
in CrudOptions
object, where you can map id
path param to an entity's field. But some adjustment in RepositoryService
is needed in that case. I'll try to do this ASAP. Cheers!
from crud.
Valid point by @dhaspden
@nestjsx/crud assumes the id
column to be a number
in both the CrudController.getOneBase
and RepositoryService.getOne
We rarely use the type number
as an ID type of entities which are available to public to avoid making the total number of records in our database easy to discover.
from crud.
I took a look briefly at this since I was also interested in having this. I think it might be a bit more nuanced because a lot of places assume number
type for the identifier field (CrudController
and the decorators which setup parsing the parameter to a number.)
I was trying to think about how we could use the params
in CrudOptions
and figured it might be unintuitive to map them somehow to the service since you could potentially have more than one attribute in that params
option. I wonder if maybe a new RestfulOptions
, maybe like idColumnName
would make more sense.
This leads me to another nuance which is handling the case where this id
column isn't a number but instead something like a UUID. We would need a way to specify the type of that identifier field. I'm no expert on Typescript (yet) but perhaps that could be solved with yet another option, say idColumnType
? I'm not sure if it'd work but you could also make the service a two value generic where T
is the entity type and U
is the type of the key?
Sorry about puking my thoughts out on the page but hopefully that gets through. I'd be really interested in seeing this happen since I like to have uuid
columns for my public facing API to avoid having to disclose internal database ids.
Edit
If you set the params
object to be
{
id: 'uuid'
}
For example, would the library process that correctly? If so I guess we could technically parse the identifier something along the lines of
const idFieldName = params && params.id ? params.id : 'id';
D
from crud.
+1: id
should be type string
as option (UUID)
from crud.
crud/src/decorators/crud.decorator.ts
Line 183 in 69da293
change to createParamMetadata(RouteParamtypes.PARAM, 0, [], 'id'),
from crud.
Thank you!
from crud.
+1: id should be type string as option (UUID)
from crud.
Thank you very much
from crud.
Ok,
I'm not sure how to use it XD
I want the name of the id
field to be brand_id
from crud.
I can now do just this:
@PrimaryGeneratedColumn({
type:"integer",
name:"population_id"
})
population_id:number;
and it's working-
from crud.
Related Issues (20)
- Array text fields : QueryFailedError when using CondOperator.CONTAINS
- Just wanted to say fuck Ukraine HOT 2
- Exclude 'createManyBase' is not working
- listing soft deleted items in crud generator
- How to list soft deleted data when using crud generator HOT 2
- allow mapping uuid to id field
- id's are returned as array of two instead of one numeric value HOT 5
- Duplicate column name (ER_DUP_FIELDNAME errno: 1060) when join table HOT 5
- using $or in ?s ignores auth filter HOT 2
- Rest api with xml request and response body HOT 1
- How get custom DTO type in TypeOrmCrudService?
- Mysql with Post and user one to may relation issue
- Queries are returning a duplicated id element inside an Array HOT 2
- Database JSON column and query WHERE support
- nestjs 10 removed misspelled CUSTOM_ROUTE_ARGS_METADATA HOT 4
- Is this open source maintained? HOT 7
- Cannot destructure property 'parsed' of 'req' as it is null. HOT 9
- ERROR [ExceptionsHandler] Cannot read properties of null (reading 'options') HOT 9
- error Command "bootstrap" not found HOT 2
- access to Query Params from custom endpoint
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crud.