db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Fox <thomas....@seitenbau.com>
Subject Re: generate enum from db at runtime
Date Fri, 10 Oct 2014 07:49:31 GMT
Hi Youngo

Torque is built on the idea that the database schema is static, i.e. does not change at runtime,
and that the database structure is defined in the schema file, not in the database.
There is some benefit in reverse-engineering from the database, however it is also a very
difficult and large field. The "Torque main path" is to define the structure in the schema
xml file and then re-run the generator, not to change the database and re-engineer it.
Therefore, to support enums, I have created a ticket in Jira https://issues.apache.org/jira/browse/TORQUE-331,
which supports enum definition in the schema.xml. I'm currently working on it, because I have
also missed the enum feature.

To elaborate the reverse engineering from the database: The generator can generate a schema
file from the database, but it is not in the core focus of the Torque team and only works
for very coarse features. See http://db.apache.org/torque/torque-4.0/documentation/orm-reference/running-the-generator.html#Generation_of_XML_schema_from_an_existing_database.
However, if you'd like to improve it, please go ahead.

  Thomas

----- Urspr√ľngliche Mail -----
Von: "Youngho Cho" <youngho1203@gmail.com>
An: "Thomas Fox" <thomas.fox@seitenbau.com>
CC: "Apache Torque Users List" <torque-user@db.apache.org>
Gesendet: Donnerstag, 9. Oktober 2014 09:06:17
Betreff: Re: generate enum from db at runtime

Hello Thomas,

I think "generated at runtime" was a little exaggerated expression
because of my lack of english expression.

It means that
If ROLE table changed by adding a new role such as 'Owner' Role,
than some task run torque generator to generate new RoleEnum class
which is include the Owner.

If torque has an ability to read database and generate corresponding
enum, I think it is very useful feature.
( It is very cumbersome work to add/remove by hand whenever some kind
of type table changed)

And your eum with om usage tip is very helpful to me.
Thanks a lot.

Thanks,

Youngho


2014-10-08 21:36 GMT+09:00 Thomas Fox <thomas.fox@seitenbau.com>:
> Hi Youngho,
>
> currently it is not possible to generate enums. This would be an interesting feature
in my opinion.
> It needs to be seen whether this requires a schema change.
>
> I'm not sure what you mean by "generated at runtime".
>
> What I currently do when I need an enum is to define "internal" methods which take and
return strings and on top of that hand-written methods which take and return the enum. It
looks something like:
>
> in the schema:
> <column name="role" type="VARCHAR" javaName="roleInternal" />
>
> in the data object (assuming Role is an enum):
> public void setRole(Role role)
> {
>   super.setRoleInternal(Role.toString());
> }
>
> public Role getRole()
> {
>   return Role.valueOf(super.getRoleInternal());
> }
>
> // only for torque's internal use
> @Deprecated
> @Override
> public String getRoleInternal()
> {
>   return super.getRoleInternal();
> }
>
> // only for torque's internal use
> @Deprecated
> @Override
> public void setRoleInternal(String role)
> {
>   super.setRoleInternal(role);
> }
>
>     Thomas
>
> ----- Urspr√ľngliche Mail -----
> Von: "Youngho Cho" <youngho1203@gmail.com>
> An: "Thomas Fox" <thomas.fox@seitenbau.com>, "Apache Torque Users List" <torque-user@db.apache.org>
> Gesendet: Mittwoch, 8. Oktober 2014 08:32:10
> Betreff: generate enum from db at runtime
>
> Hello Thomas,
>
> Can torque generate enum class from database ?
>
> For example,
>
> following turbine-fucrum-torque security model
>
> http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml?revision=1575232&view=markup
>
> has Role, Permission table.
>
> And It can be added during system running.
>
> When those table column added/removed,
> I hope to running maven-plugin or ant target etc.. to generate
> corresponding enum class.
>
> Is it possible senario ?
>
>
> Thanks,
>
> Youngho
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Mime
View raw message