LeanMapper icon indicating copy to clipboard operation
LeanMapper copied to clipboard

DibiLiteral annotation combined with string

Open srigi opened this issue 10 years ago • 1 comments

I use PostgreSQL and UUID datatype. To generate proper UUID you need to set annotation to

@property DibiLiteral $uuid

so resulting SQL looks like this:

INSERT INTO
  "public"."user"
  (uuid, email)
VALUES
  (uuid_generate_v4(), '[email protected]')

If I instead use string as datatype of property, INSERT fails cos uuid_generate_v4 function is wrapped in quotes in resulting SQL.

Problem with DibiLiteral annotation is when accessing $entity->uuid. Since property is annotated as DibiLiteral and DB in fact returns string, LeanMapper throws exeption. So I tried to use this form for annotation

@property string|DibiLiteral $uuid

This crashed EntityReflection at this exact point cos regex didn't matches anything.

Can you suggest any idea how to solve this. I don't want to give up on using Postgre's UUIDs.

srigi avatar Jun 03 '15 12:06 srigi

I'd to define custom data types. This is a perfect use case. I started usingi sql server that has similar data types that do not have any corresponding ones in most of DBs (like GUID). And not just that. Decimal or kind of structed types might be defined this way in the future. But I move this issue to a lates release.

castamir avatar Feb 29 '16 20:02 castamir