incubator-empire-db-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt DeHoust <mdeho...@gmail.com>
Subject Re: Relationships
Date Mon, 04 Jul 2011 18:49:15 GMT
Sorry for the delay, but I have attached the patch to EMPIREDB-110. The
patch provides a unit test named CodeGenParserTest that verifies the
EMPLOYEES->DEPARTMENTS relationship in the test database is properly reverse
engineered.

-Matt


On Mon, Jul 4, 2011 at 8:05 AM, Benjamin Venditti <
benjamin.venditti@arcor.de> wrote:

> Hi Rainer,
>
> good to hear they it is working as expected.
> I'll have another look at it when Matt attaches his test to this issue.
> It'd be good to have a formal testcase for that, too.
>
> Cherio
>    Benjamin
>
> Am 04.07.2011 11:25, schrieb Rainer Döbele:
>
>  Hi Benjamin,
>>
>> I had a look at your changes and they look good to me.
>> Tried it with Oracle and it worked as expected.
>>
>> I just made a few adjustments to the logging.
>>
>> Thanks a lot.
>> Rainer
>>
>>
>>  from: Benjamin Venditti [mailto:benjamin.venditti@**arcor.de<benjamin.venditti@arcor.de>
>>> ]
>>> to: empire-db-dev@incubator.**apache.org<empire-db-dev@incubator.apache.org>
>>> cc: Matt DeHoust; empire-db-user@incubator.**apache.org<empire-db-user@incubator.apache.org>
>>> re: Re: Relationships
>>>
>>> Hi there,
>>>
>>> i just committed a working solution for EMPIREDB-110 the
>>> reverse-engineering of foreign-key relationships.
>>> i'd be happy if anyone could have a look at it.
>>>
>>> Cherio
>>>      Benjamin
>>>
>>> Am 29.06.2011 15:12, schrieb Matt DeHoust:
>>>
>>>> Thank you Benjamin and Rainer. I have subscribed to the dev list. I'll
>>>>
>>> take
>>>
>>>> a look at the code when I return from vacation and follow up using the
>>>>
>>> dev
>>>
>>>> list with any questions or ideas. I hope to have a chance to look into
>>>>
>>> it
>>>
>>>> this weekend.
>>>>
>>>> -Matt
>>>>
>>>> On Wed, Jun 29, 2011 at 6:30 AM, Rainer Döbele<doebele@esteam.de>
>>>>
>>> wrote:
>>>
>>>> Hi everyone,****
>>>>>
>>>>> ** **
>>>>>
>>>>> I think this is an important improvement of the code generator that
>>>>>
>>>> we
>>>
>>>> should implement.****
>>>>>
>>>>> I have created a Jira Issue for this:****
>>>>>
>>>>> ** **
>>>>>
>>>>> https://issues.apache.org/**jira/browse/EMPIREDB-110****<https://issues.apache.org/jira/browse/EMPIREDB-110****>
>>>>>
>>>>> ** **
>>>>>
>>>>> Matt, if you feel you can and want to do It, then we would certainly
>>>>> appreciate this.****
>>>>>
>>>>> You may create a patch file and attach it to the JIRA ticket.****
>>>>>
>>>>> Then we can apply the patch and commit the code to svn.****
>>>>>
>>>>> ** **
>>>>>
>>>>> For further discussion I would recommend to move to the dev-mailing
>>>>>
>>>> list:*
>>>
>>>> ***
>>>>>
>>>>> empire-db-dev@incubator.**apache.org<empire-db-dev@incubator.apache.org>
>>>>> ****
>>>>>
>>>>> ** **
>>>>>
>>>>> Thanks, ****
>>>>>
>>>>> Rainer****
>>>>>
>>>>> ** **
>>>>>
>>>>> ** **
>>>>>
>>>>> *Von:* Benjamin Venditti [mailto:benjamin.venditti@**arcor.de<benjamin.venditti@arcor.de>
>>>>> ]
>>>>> *Gesendet:* Mittwoch, 29. Juni 2011 01:47
>>>>> *An:* empire-db-user@incubator.**apache.org<empire-db-user@incubator.apache.org>
>>>>> *Cc:* Matt DeHoust
>>>>> *Betreff:* Re: Relationships****
>>>>>
>>>>> ** **
>>>>>
>>>>> Hi Matt,
>>>>>
>>>>> thanks for your interest in empire-db.
>>>>>
>>>>> regarding your request ... unfortunately the codegen does not set up
>>>>>
>>>> the
>>>
>>>> relation of the database model.
>>>>> At the moment the codegen will only set up views and tables. We
>>>>>
>>>> thought
>>>
>>>> these are the most important for the most people as they are usually
>>>>> sufficient for simple data access.
>>>>>
>>>>> However i think there are two occasions where the relations are
>>>>>
>>>> important:
>>>
>>>>      - database creation
>>>>>      - deletion of records with cascading deletion enabled
>>>>>
>>>>> At the moment we have not planned to add "relationship generation"
>>>>>
>>>> to the
>>>
>>>> codegen component, but I am glad to hear that you consider to extend
>>>>>
>>>> it on
>>>
>>>> your own.
>>>>>
>>>>> The right place to start with that would be:
>>>>>     * CodeGenParser.**populateDatabase(..) : 131* : This is the point
>>>>>
>>>> where
>>>
>>>> the DatabaseMetaData is querried and used to populate empire-db's
>>>>>
>>>> model
>>>
>>>>      *CodeGenWriter.**generateCodeFiles(..) : 125* : Is used to
>>>>>
>>>> serialize the
>>>
>>>> populated model as java code
>>>>>      *src/main/resources/Database.**vm :  70* : This is the velocity
>>>>>
>>>> template
>>>
>>>> we use to create the java class for the database.
>>>>>
>>>>> In its default constructor you'd need to add a line for each
>>>>>
>>>> relationship
>>>
>>>> similar to this:
>>>>>
>>>>>                                  *addRelation(
>>>>> EMPLOYEES.DEPARTMENT_ID.**referenceOn( DEPARTMENTS.DEPARTMENT_ID ));*
>>>>>
>>>>> I hope this is of some help to you. Feel free to ask if you have
>>>>>
>>>> further
>>>
>>>> questions!
>>>>>
>>>>> Cherio
>>>>>      Benjamin
>>>>>
>>>>> Am 28.06.2011 19:37, schrieb Matt DeHoust: ****
>>>>>
>>>>> Hello, ****
>>>>>
>>>>> ** **
>>>>>
>>>>> I see that the empire-db model supports relationships (for example
>>>>> DBDatabase.getRelations()), but it doesn't seem that the codegen
>>>>>
>>>> component
>>>
>>>> sets them up. Am I missing something? (I am using MySQL if that
>>>>>
>>>> matters.)*
>>>
>>>> ***
>>>>>
>>>>> ** **
>>>>>
>>>>> If not, are there plans to introduce relationship setup in the
>>>>>
>>>> codegen
>>>
>>>> component?****
>>>>>
>>>>> ** **
>>>>>
>>>>> If not, where should I look to add them myself? CodeGenParser?****
>>>>>
>>>>> ** **
>>>>>
>>>>> Thanks,****
>>>>>
>>>>> Matt****
>>>>>
>>>>> ** **
>>>>>
>>>>> P.S. I apologize if I posted this question twice by mitake.****
>>>>>
>>>>> ** **
>>>>>
>>>>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message