我有两个表,如下:
表1:
CREATE TABLE `Product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`typename` varchar(255) DEFAULT NULL,
`typecode` varchar(55) DEFAULT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=396 DEFAULT CHARSET=latin1;
表2:
CREATE TABLE measurements (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
age_group varchar(20) NOT NULL,
articleType NOT NULL,
dimension text ,
createdOn int(11) NOT NULL,
updatedOn int(11) NOT NULL,
createdBy text NOT NULL,
)ENGINE=InnoDB AUTO_INCREMENT=396 DEFAULT CHARSET=latin1;
现在如何在 Java 持久性中使用 join columnmeasurements.articleType = Product.typename
连接两个表。
我知道使用外键( http://en.wikibooks.org/wiki/Java_Persistence/OneToMany )使用一对多和多对一的概念。但上面的表没有外键。
最佳答案
我在这里假设您想要一个多对多。 在java中,如果你希望它是双向的,请使用
@ManyToMany(mappedBy = "products")
public List<Product> getProducts() { ... }
在产品中
@ManyToMany
@JoinTable(name = "product_measurement")
public List<Measurement> getMeasurement() { ... }
在 sql 中它将是:
CREATE TABLE product_measurement
(
product_measurement_id int(11) NOT NULL,
measurement_product_id int(11) NOT NULL,
FOREIGN KEY (measurement_product_id) REFERENCES measurement (id),
FOREIGN KEY (product_measurement) REFERENCES product (id)
);
关于java - 如何应用一对多和多一注释(Java Persistence),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30261700/