[hibernate-dev] Sharing an association table between two associations
Steve Ebersole
steve at hibernate.org
Thu Mar 19 12:26:27 EDT 2015
The difficulty is recognizing this as an exception condition, which I'd
really prefer to do. But I just don't see a way to accomplish that without
tables keeping a "nature" indicating how they are used.
On Thu, Mar 19, 2015 at 3:35 AM, Emmanuel Bernard <emmanuel at hibernate.org>
wrote:
> Oops, Adding the mailing list.
> Thanks for the input, we went for two explicit table names in the OGM
> test. Looks like we are aligned.
>
> Emmanuel
>
>
> On 18 mars 2015, at 18:59, Steve Ebersole <steve at hibernate.org> wrote:
>
> Well considering I am the only recipient... ;)
>
> I have actually seen this scenario in one of your annotation test cases.
> Currently, the outcome is actually highly dependent upon the naming
> strategy used. In my opinion, this should be an invalid mapping. The spec
> may or may not back me up there, but to me it just "feels" wrong.
>
>
>
> On Wed, Mar 18, 2015 at 10:27 AM, Emmanuel Bernard <emmanuel at hibernate.org
> > wrote:
>
>> Hi Steve and all,
>>
>> There is a borderline case that Hibenate OGM trips on. I would like to
>> know whether you consider this case valid enough or if we can safely
>> ignore it.
>>
>> @Entity
>> public class SnowFlake {
>> @Id
>> private String id;
>> private String description;
>> }
>>
>> @Entity
>> public class Cloud {
>> @Id
>> private String id;
>> private String type;
>> private double length;
>> @OneToMany
>> @JoinTable
>> private Set<SnowFlake> producedSnowFlakes = new HashSet<SnowFlake>();
>> @OneToMany
>> @JoinTable
>> private Set<SnowFlake> backupSnowFlakes = new HashSet<SnowFlake>();
>> }
>>
>> Here, producedSnowFlakes and backupSnowFlakes have the set semantic, so a
>> PK is
>> created for the association tables. Except that we use the same
>> association
>> table name Cloud_SnowFlake) for both. The PK offered in Hibernate ORM
>> metadata
>> ends up being wrong.
>> The runtime code works as the target fk columns are named differently.
>>
>> I have always considered it wrong to share the same table for two
>> associations.
>> Are you with me, or should we try to amke the ORM physical model smarter
>> to
>> relax the PK generation when an association table is shared?
>>
>> Emmanuel
>>
>
>
More information about the hibernate-dev
mailing list