2013-03-01 4 views
0

Я хотел бы достичь таблицы, как показано нижеКомпозитные ключи в Hibernate

CREATE TABLE `item` (
    `country_id` bigint(20) NOT NULL, 
    `name` varchar(255) NOT NULL, 
    `CREATION_DATE` datetime NOT NULL, 
    `description` varchar(255) DEFAULT NULL, 
    `point` decimal(19,2) NOT NULL, 
    `price` decimal(19,2) NOT NULL, 
    `UPDATED_DATE` datetime DEFAULT NULL, 
    `VERSION` int(11) DEFAULT NULL, 
    `STARTER_PACKAGE` tinyint(1) NOT NULL, 
    PRIMARY KEY (`name`,`country_id`), 
    KEY `fk_country_id` (`country_id`), 
    CONSTRAINT `fk_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`ID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$ 

Может кто-нибудь показать мне, как писать объект с аннотацией для достижения указанных выше таблиц?

ответ

1

Hibernate имеет очень элегантный способ обработки этого случая:

@Entity 
@Table(name = "itemPrice") 
public class ItemPrice extends PersistentObject { 

    @Id 
    @ManyToOne 
    @JoinColumn(name = "country_id") 
    private Country country; 

    @Id 
    @ManyToOne 
    @JoinColumn(name = "item_id") 
    private Item item; 

    @Column(nullable = false) 
    @NotNull 
    private BigDecimal point; 

    @Column(nullable = false) 
    @NotNull 
    private BigDecimal price; 
} 
+0

я следовал, как Вы предложили, однако он дает мне ошибку прямо сейчас. Я также обновил свой вопрос с ошибкой. благодаря – abiieez

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