Hibernate中的复合键
我希望得到如下表Hibernate中的复合键,hibernate,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,
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$$
有人能告诉我如何编写带有注释的实体来实现上表吗?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;
}
我已经按照你的建议做了,但是现在它给了我一个错误。我也用错误更新了我的问题。谢谢