gpt4 book ai didi

java - play framework java中的多对多关系

转载 作者:行者123 更新时间:2023-11-30 08:24:13 25 4
gpt4 key购买 nike

我正在尝试使用多对多方法产品与商店有多对多关系Product.java

package models;
@Entity
public class Product extends Model {

@Id
@SequenceGenerator(name="product_gen", sequenceName="product_id_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="product_gen")
@Column(name="id")
public Long id;

@Required
public String name;

@Required
public Float price;

@ManyToMany(cascade = CascadeType.ALL)
public List<Shop> shops = new ArrayList<Shop>();

public Product(String name, float price) {
this.name = name;
this.price = price;
}
public static List<Product> all(){
return find.all();
}
public static Model.Finder<Long, Product> find = new Model.Finder(Long.class, Product.class);

public static Product create(String name,float price) {
Product product = new Product(name, price);
product.save();
product.saveManyToManyAssociations("shops");
return product;
}




}

play 创建了一个表 product_shop,其中 shop_id 和 product_id 作为外键,但在添加产品时无法在 product_shop 表中存储任何值任何帮助将不胜感激。

最佳答案

我有 AppsUsers。每个应用程序可以有多个用户,每个用户可以使用多个应用程序。

在您的情况下,您可以将 App 替换为 Product 并将 User 替换为 Shop

这是我在 Play 下的工作代码! 2.2.2

数据库的演变:

create table app_user (
id varchar(40) not null,
constraint pk_fb_user primary key (id)
);

create table app (
id varchar(40) not null,
name text,
constraint pk_app_id primary key (id)
);

create table membership (
app_id varchar(40) not null,
app_user_id varchar(40) not null,
constraint fk_membership_app_id foreign key (app_id) references app,
constraint fk_membership_app_user_id foreign key (app_user_id) references app_user
);

模型应用

@Entity
public class App extends Model {

@Id
public UUID id;

@Column
public String name;

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "membership")
public List<User> users;

....
}

模型用户

@Entity
@Table(name = "app_user")
// user is reserved keyword in DB
public class User extends Model {

@Id
public UUID id;

}

我不需要访问用户的应用程序,所以我在用户中没有应用程序字段。

关于java - play framework java中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com