for my 'easy' example, it would seem as though table-per-class is what i
need.

How does one map that, Fluently? Documentation on this is lacking, afaik.

The Hibernate doc for table-per-concrete, suggests that one can use abstract
classes.
(http://docs.jboss.org/hibernate/core/3.5/reference/en/html/inheritance.html
)

Does anyone know if that Is that ONLY for that metaphor? If not, am I
limited to *not *using abstract in TPC?

Thanks

------
Joe Brockhaus
[email protected]
------


On Mon, Jan 24, 2011 at 1:36 PM, Joe Brockhaus <[email protected]> wrote:

> OK, then I suppose ignore the abstract requirement (just trying to maintain
> best practices in the code. wouldn't want a dev trying to new up a base
> class which can't live on its own..)
>
> assuming a basic inheritance example:
>
> domain:
>
> public class EntityBase
> {
>     public virtual string ID {get;set;}
>     public virtual DateTime CreateDate {get;set;}
>
>     public virtual string Type {get;}
>     public virtual string SubTypeType {get;} // was abstract to force
> override in children..
>     ...
> }
> public class EntityChildA : EntityBase
> {
>     public string ACustomProperty {get;set;}
>     public override string SubTypeType {get {return "ECA";} }
> }
>  public class EntityChildB : EntityBase
> {
>     public string BCustomProperty {get;set;}
>     public override string SubTypeType {get {return "ECB";} }
> }
>
>
> table (1):
>
> |   ID     |   SubTypeType   |   CreateDate   |   ACustomProperty   |
> BCustomProperty   |
>
>
>
>
> ----------------------------------------------------------------------------------------------
>
> now, as for explaining my original question of crazy schema ...
>
> there are other existing tables which are also the same 'type' as these
> entities.
> (This is why it's SubTypeType above..)
>
> perhaps trying to map this schema is not something i should try to do, and
> interface the 1,2,3 types to perform common actions across them.
>
> But that means I still need to know how to map the first, 'easy', scenario.
>
> so the thinking would be:
>
> tables (3, in this ex) might look like:
>
>  |   ID     |   Type   |   SubTypeType   |   CreateDate   |   1AProperty
> |
> |   ID     |   Type   |   SubTypeType   |   CreateDate   |   2AProperty   |
>  |   ID     |   Type   |   SubTypeType   |   CreateDate   |
> 3ACustomProperty   |    3BCustomProperty   |
>
> which might represent 4 (child) types:
>
>  public class EntityBase
> {
>     public virtual string ID {get;set;}
>     public virtual DateTime CreateDate {get;set;}
>
>     public virtual string Type {get;}
>     public virtual string SubTypeType {get;} // was abstract to force
> override in children..
>     ...
> }public class EntityChild1A : EntityBase
>  {
>     public string 1AProperty {get;set;}
>     public override string Type {get {return "1A";} }
>     public override string SubTypeType {get {return "A";} }
> }
> public class EntityChild2A : EntityBase
> {
>     public string 2AProperty {get;set;}
>     public override string Type {get {return "2A";} }
>     public override string SubTypeType {get {return "A";} }
> }
> public class EntityChild3A : EntityBase
> {
>     public string 3ACustomProperty {get;set;}
>      public override string Type {get {return "3A";} }
>     public override string SubTypeType {get {return "A";} }
> }
> public class EntityChild3B : EntityBase
> {
>     public string 3BCustomProperty {get;set;}
>     public override string Type {get {return "3B";} }
>     public override string SubTypeType {get {return "B";} }
> }
>
> Thanks =)
>
> ------
> Joe Brockhaus
> [email protected]
> ------
>

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en.

Reply via email to