java 板


LINE

※状况概述: 我想请问现在若有一个entity长成以下这样: @Entity @Table(name="STAFF") public class Staff { @Id @Column(name="STAFF_ID") private int staffId; @Column(name="STAFF_NAME") private String staffName; @Column(name="ADDRESS") private String address; @Column(name="CUSTOMER_ID") @OneToMany(cascade=CascadeType.ALL,mappedBy="Staff") private TreeSet<Customer> customers = new TreeSet<>(); ...... } 意思是一个店员可以服务多个客人,所以用OneToMany来表示 那对应的table,关於CUSTOMERS的部分要如何描述呢? 例如 CREATE TABLE staff( STAFF_ID number(20) NOT NULL, STAFF_NAME varchar(45) NOT NULL, ADDRESS varchar(255), //要如何描述TreeSet<Customer> customers PRIMARY KEY (STAFF_ID) ); 又如果是多对一的情形,例如多个客人对一个店员: @Entity @Table(name="CUSTOMER") public class Customer { @Id @Column(name="CUSTOMER_ID") int customerId; @Column(name="NAME") String name; @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name="STAFF_ID") Staff staff; ...... } 那对应的表格又该如何描述呢? CREATE TABLE customer( CUSTOMER_ID number(20) NOT NULL, NAME varchar(45) NOT NULL, //这边如何描述staff?? PRIMARY KEY (CUSTOMER_ID) ); --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.167.40.166 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1610264855.A.BC2.html lueichun:转录至看板 Database 01/10 15:58
1F:→ jej: 先问一下你有查cascade的意思吗? 01/10 16:13
2F:→ jej: 免得到时候其他地方pojo作setting发生超乎你理解的事 01/10 16:13
3F:→ jej: 如果有查的话 你已经写完了 01/10 16:26
4F:→ jej: 画张ERD或是class Diagram就可以交差了 01/10 16:26
5F:→ ssccg: 你跟relational DB不太熟? one-to-many主表是不会有栏位的 01/10 19:10
6F:→ ssccg: 是要关联的表会有个栏位设Foreign key对应主表key栏位 01/10 19:13
7F:→ ssccg: 先学好RDBMS的基本就不会有这问题,然後看一楼说的cascade 01/10 19:16
cascade目前先拿掉
8F:→ ssccg: 是说这样你是怎麽理解mappedBy和@JoinColumn的用意的? 01/10 19:19
mappedBy目前是理解成放外部键对应属性的地方 @JoinColumn理解成放外部键栏位的地方 目前是先写成这样: @Entity @Table(name="CUSTOMER") public class Customer { ...... @ManyToOne @JoinColumn(name="STAFF_ID") Staff staff; ...... } @Entity @Table(name="STAFF") public class Staff { ...... @OneToMany(mappedBy="staff") private Set<Customer> customers; ...... } 表格: CUSTOMER: https://i.imgur.com/RUSle8e.png STAFF: https://i.imgur.com/hIAJ7Gj.png 启动Server时可正常启动且可正常执行persist。 ※ 编辑: lueichun (1.167.41.211 台湾), 01/14/2021 15:21:59
9F:→ internetms52: 呃…不太懂你的问题...如果staff对cust是一对多, 01/20 18:26
10F:→ internetms52: cust对staff也是1对多,这两张表的关系应该是多对 01/20 18:26
11F:→ internetms52: 多 01/20 18:26







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP