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" <youngho1...@gmail.com>
An: "Thomas Fox" <thomas....@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....@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" <youngho1...@gmail.com>
> An: "Thomas Fox" <thomas....@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-unsubscr...@db.apache.org
> For additional commands, e-mail: torque-user-h...@db.apache.org
>

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


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

Reply via email to