Details
-
Type:
New Feature
-
Status:
Resolved
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 2.0-BETA4
-
Fix Version/s: 2.3
-
Component/s: Mapping Drivers
-
Security Level: All
-
Labels:None
Description
Doctrine 2 is currently using "id" as the default name for identifier columns, and "_id" as suffix for corresponding foreign key columns. I think this is quite reasonable in most cases.
Now, assuming that for any reason I wanted to change this to something else for all relationships, currently there does not seem to be any easy way to do it.
You will have to give a complete JoinColumn definition on every single relationship declaration, like (assuming that I want the new ID name to be "dbID"):
/**
- @ManyToOne(targetEntity="persistentData\model\import\Whatever", inversedBy="someReferenceThatPointsHere")
- @JoinColumn(name="whatever_dbid", referencedColumnName="dbId")
*/
The reason why I am doing this is that I am doing a 1:1 data import based on a data model that is already defined, and it just happens to contain properties named "id",
which unfortunately even have a problem-domain meaning. So instead of mapping those problem-domain properties to something else (breaking my 1:1 convention), or
using something that does have a problem-domain-meaning as a primary key (which I consider bad practice), I thought I might just use purely technical ids and instruct
doctrine to choose a different name for those. This is, fortunately, possible. But unless I am missing something here, it needs to be specified on every single relationship.
It would be great to have a less redundant way of configuring Doctrine to use a different name/suffix generally, e.g. by calling a setter method on the configuration object, like
$configuration->setDefaultIdColumnName().
Activity
| Field | Original Value | New Value |
|---|---|---|
| Assignee | Roman S. Borschel [ romanb ] | Fabio B. Silva [ fabio.bat.silva ] |
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Fix Version/s | 2.3 [ 10185 ] | |
| Resolution | Fixed [ 1 ] |
| Workflow | jira [ 12050 ] | jira-feedback [ 14620 ] |
| Workflow | jira-feedback [ 14620 ] | jira-feedback2 [ 16484 ] |
| Workflow | jira-feedback2 [ 16484 ] | jira-feedback3 [ 18737 ] |
- Request to http://www.doctrine-project.org/fisheye/ failed: Error in remote call to 'FishEye 0 (http://www.doctrine-project.org/fisheye/)' (http://www.doctrine-project.org/fisheye) [AbstractRestCommand{path='/rest-service-fe/search-v1/crossRepositoryQuery', params={query=DDC-852, expand=changesets[-21:-1].revisions[0:29],reviews}, methodType=GET}] : Received status code 503 (Service Temporarily Unavailable)
Related to
DDC-559