dev@glassfish.java.net

Mapping one colunm in two foreign keys

From: Guilherme Namen Pimenta <guilherme.namen_at_teknisa.com>
Date: Fri, 19 Dec 2008 10:20:31 -0300

Hello.
Could someone help me to implement mappgin one column in two foreign keys.
To be more especifc i want to implemet this kind of relationship:

@JoinColumns({
           @JoinColumn(name = "CDPAIS", referencedColumnName = "CDPAIS",
insertable = false, updatable = false),
           @JoinColumn(name = "SGESTADO", referencedColumnName = "SGESTADO",
insertable = false, updatable = false),
           @JoinColumn(name = "CDMUNICIPIO", referencedColumnName =
"CDMUNICIPIO", insertable = false, updatable = false),
           @JoinColumn(name = "CDBAIRRO", referencedColumnName =
"CDBAIRRO")})
       @ManyToOne(fetch = FetchType.LAZY)
       private Bairro bairro;

@JoinColumns({
           @JoinColumn(name = "CDPAIS", referencedColumnName = "CDPAIS",
insertable = false, updatable = false),
           @JoinColumn(name = "SGESTADO", referencedColumnName =
"SGESTADO")})
       @ManyToOne(fetch = FetchType.LAZY)
       private Estado estado;

@JoinColumns({
           @JoinColumn(name = "CDPAIS", referencedColumnName = "CDPAIS",
insertable = false, updatable = false),
           @JoinColumn(name = "SGESTADO", referencedColumnName = "SGESTADO",
insertable = false, updatable = false),
           @JoinColumn(name = "CDMUNICIPIO", referencedColumnName =
"CDMUNICIPIO")})
       @ManyToOne(fetch = FetchType.LAZY)
       private Municipio municipio;

@JoinColumn(name = "CDPAIS", referencedColumnName = "CDPAIS")
       @ManyToOne(fetch = FetchType.LAZY)
       private Pais pais;

TopLink can't generete correct insert an update sql setence for this
mapping, it simple ignores the municipio, estado and bairro.
Thanks