[DDC-2012] Inserting a new entity with a custom mapping type does not call convertToDatabaseValueSQL() when using InheritanceType("JOINED") Created: 04/Sep/12 Updated: 17/Apr/14 Resolved: 03/Oct/12
|Project:||Doctrine 2 - ORM|
|Reporter:||Kaspars Sproģis||Assignee:||Fabio B. Silva|
When using class type inheritance - @InheritanceType("JOINED") and inserting new entity with a custom mapping type, custom type method convertToDatabaseValueSQL() is never called.
Here is sample class mapping:
I am using the same custom TsvectorType with simple entities and even Mapped Superclasses and it works perfectly, however on InheritanceType("JOINED") method convertToDatabaseValueSQL() is never called :/
|Comment by Fabio B. Silva [ 24/Sep/12 ]|
I can't reproduce,
|Comment by Kaspars Sproģis [ 26/Sep/12 ]|
@Fabio thanks for looking into my problem
It was quite strange, all i did was changed column that uses custom type to array and some minimal convertToDatabaseValue and convertToDatabaseValueSQL logic and convertToDatabaseValueSQL was never called.
One more thing i noticed, this bug only appears on persist and not on merge.
|Comment by Fabio B. Silva [ 29/Sep/12 ]|
But sorry, I dont get your use case.
Notice that convertToDatabaseValueSQL is called just when using queries to find a object by a especific columns which is your mapping type.
|Comment by Kaspars Sproģis [ 29/Sep/12 ]|
I am using PostgreSQL tsvector data type for full text search.
Here is my tsvector custom data type class:
The only way to update this field in postgresql is to use postgresql function to_tsvector('some text').
But when i use inheritance, then by some reason convertToDatabaseValueSQL method is not called and tsv field is updated with simple text as returned by convertToDatabaseValue() method.
Here is the result after persisting (for persist it failed)
Here is the result after second time update (now by tsv format you can see it worked):
|Comment by Fabio B. Silva [ 30/Sep/12 ]|
Now i saw the problem
Writing a patch ...
|Comment by Kaspars Sproģis [ 03/Oct/12 ]|
Just tested fixed version and everything works perfectly now.
|Comment by Fabio B. Silva [ 03/Oct/12 ]|