java中间表,hibernate 中间表的映射

我有三张表(gym_station: 健身器械   gym_circuit: 训练计划

gym_station_circuit多对多的映射表, 但是多了一项数据:健身器械在训练计划中的使用顺序)

CREATE TABLE gym_station(

id serial PRIMARY KEY,

name varchar(30) NOT NULL UNIQUE,

description varchar(200),

);

CREATE TABLE gym_circuit(

id serial PRIMARY KEY,

gym_date date NOT NULL UNIQUE

);

CREATE TABLE gym_station_circuit(

station_id integer REFERENCES df_gym_station (id),

circuit_id integer REFERENCES df_gym_circuit (id),

do_order integer,

PRIMARY KEY (station_id, circuit_id)

);

如果使用hibernat tool自动生成

public class GymCircuit implements java.io.Serializable {

private int id;

private Date gymDate;

private Set dfGymStationCircuits;

...

}

public class GymStation implements java.io.Serializable {

private int id;

private String name;

private String description;

private Set dfGymStationCircuits;

...

}

public class GymStationCircuit implements java.io.Serializable {

private GymStationCircuitId id;

private GymCircuit dfGymCircuit;

private GymStation dfGymStation;

private Integer practiseOrder;

...

}

个人感觉这样的映射不是很好,如果你有类似经验,你是如何映射中间的表呢?

这个问题提醒到我在设计中间表存信息时的思路,就是把中间表独立出来存放两者关联的数据,不然以上这种设计是不太好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值