2013-06-04 5 views
0

я борюсь со следующим сценарием:один-ко-многим однонаправленного картографирования с соединением

У меня есть 2 таблицы:

RESULTS (
`L_ID` int(10) unsigned NOT NULL, 
`PRIZE` int(10) unsigned NOT NULL, 
`SECONDARY_PRIZE` int(10) unsigned NOT NULL, 
PRIMARY KEY (`L_ID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 


STATISTICS (
`L_ID` int(10) unsigned NOT NULL, 
`F_TYPE` int(10) unsigned NOT NULL, 
`RANK` varchar(2) NOT NULL, 
`WINNERS` int(10) unsigned NOT NULL, 
`PRIZE` int(10) unsigned NOT NULL, 
PRIMARY KEY (`L_ID`,`F_TYPE`,`RANK`), 
KEY `L_ID_FK_idx` (`L_ID`), 
CONSTRAINT `L_ID` FOREIGN KEY (`L_ID`) REFERENCES `RESULTS` (`L_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 

И следующие классы:

@Embeddable 
public class StatisticId implements Serializable { 

    @Column(name = "L_ID", unique=false, nullable=false, updatable=true, insertable=true) 
    private long lId; 

    @Column(name = "F_TYPE", unique=false, nullable=false, updatable=true, insertable=true) 
    private int fType; 

    @Column(name = "RANK_ID", unique = false, nullable = false, updatable = true, insertable = true, length = 2) 
    private String rankId; 

    ..Getters\Setters... 
} 

Статистика класс:

@Entity 
@Table(name = "STATISTICS", uniqueConstraints = {}) 
public class Statistic implements Serializable { 

    @EmbeddedId 
    @AttributeOverrides({ 
    @AttributeOverride(name = "lId", column = @Column(name = "L_ID", unique = false, nullable = false, insertable = true, updatable = true)), 
    @AttributeOverride(name = "fType", column = @Column(name = "F_TYPE", unique = false, nullable = false, insertable = true, updatable = true)), 
    @AttributeOverride(name = "rankId", column = @Column(name = "RANK_ID", unique = false, nullable = false, insertable = true, updatable = true, length = 2)) 
    }) 
    private StatisticId id; 


    @Column(name = "WINNERS", unique = false, nullable = false, updatable = true, insertable = true) 
    private long winners; 

    @Column(name = "PRIZE", unique = false, nullable = false, updatable = true, insertable = true) 
    private long prize; 
} 

и, наконец, РЕЗУЛЬТАТ ТАБЛИЦА:

Я использую Hibernate4.3beta с его подключение proxool бассейн.

Исключение я получаю:

org.hibernate.AnnotationException: A Foreign key refering  
com.btl.server.database.beans.Statistic from com.btl.server.database.beans.Result has the wrong 
number of column. should be 2 

Что я делаю отжать ??

Благодарим вас за терпение, читая это!

ответ

0

Решенный!

Проблема была в бета-версии HIbernate4.3, как только я переключился на 4.2.1Final, это сработало, как волшебство !!

Смежные вопросы