java - 如何在 Java 中设置 Hibernate 组合键表
问题描述
如何在 Hibernate 中设置以下内容?
我有一个名为“地址”的表来保存个人或公司地址。我想创建一个关键字表,我可以在其中放置一些可搜索的值以与“管道工”或“割草服务”等地址相关联。为了建立关联,我创建了第三个表“KeywordInstance”,它有一个复合键,并且只有特定地址条目和关键字条目的键。
因此,地址的“KeywordInstance”中可能有零个或多个条目。我不确定如何在 Hibernate 中进行设置。
创建表地址( AddressId INTEGER NOT NULL AUTO_INCREMENT, (其他领域) 主键(地址 ID) ) 引擎=创新; 创建表关键字 ( Id INTEGER NOT NULL AUTO_INCREMENT, 关键字 VARCHAR(100) NOT NULL UNIQUE, 主键(ID) ) 引擎=创新; 创建表 KeywordInstance ( KeywordKey INTEGER NOT NULL, AddressId 整数非空, 主键(KeywordKey,AddressId) ) 引擎=创新; @实体 @Table(name = "Address", uniqueConstraints = { @UniqueConstraint(columnNames = { "AddressId" }) }) 公共类 AddressDTO 实现 Comparable、Serializable { @短暂的 私有静态最终长序列版本UID = 43L; @ID @GeneratedValue(策略 = GenerationType.IDENTITY) @Column(name = "AddressId", unique = true, nullable = false) 私有整数地址Id; @Column(name = "FirstName", unique = false, nullable = true, length = 50) 私人字符串名; @Column(name = "MiddleName", unique = false, nullable = true, length = 50) 私有字符串中间名; @Column(name = "LastName", unique = false, nullable = true, length = 50) 私人字符串姓氏; @Column(name = "Addr1", unique = false, nullable = true, length = 100) 私有字符串地址1; @Column(name = "Addr2", unique = false, nullable = true, length = 100) 私有字符串地址2; @Column(name = "City", unique = false, nullable = true, length = 50) 私人字符串城市; @Column(name = "State", unique = false, nullable = true, length = 2) 私有字符串状态; @Column(name = "Zip", unique = false, nullable = true, length = 10) 私人字符串 zip; @Column(name = "配偶", unique = false, nullable = true, length = 50) 私人弦乐配偶; @Column(name = "Company", unique = false, nullable = true, length = 80) 私人弦乐公司; @Column(名称=“网站”,唯一=假,可为空=真,长度= 180) 私人字符串网站; @高球 @Column(name = "Notes", unique = false, nullable = true) 私有字符串注释; @Column(name = "Type", unique = false, nullable = true, length = 1) 私有字符串地址类型; (吸气剂,二传手) } @实体 @Table(name = "Keywords", uniqueConstraints = { @UniqueConstraint(columnNames = { "Id" }) }) 公共类 KeywordDTO 实现 Serializable { @短暂的 私有静态最终长序列版本UID = 46L; @ID @GeneratedValue(策略 = GenerationType.IDENTITY) @Column(table = "Keywords", name = "Id", unique = true, nullable = false, updatable = false) 私人整数 id; @Column(table = "Keywords", name = "Keyword", unique = true, length = 100) 私有字符串关键字; (吸气剂,二传手) } @实体 @Table(name = "KeywordInstance") 公共类 KeywordInstanceDTO 实现 Serializable { @短暂的 私有静态最终长序列版本UID = 49L; 私有整数关键字Key; 私有整数地址Id; (吸气剂,二传手) }
解决方案
推荐阅读
- html - 如何在闪亮和闪亮的仪表板中将图标放在输入小部件的标题上
- laravel - 将属性添加到 Laravel 中数组的第一项
- api - 如何使用WHMCS Local api(内部API)
- spring-batch - 运行 Spring Batch 测试,不初始化数据库
- python - 是否有 pytz.common_timezones 的替代品
- angular - 何时使用 Angular 指令、组件和模块
- anagram - 检查字谜的更优雅的方法是什么?
- excel - VB6 传递 Excel 对象以在某些机器上运行时缺少 DLL 错误,但如果未传递则可以工作。为什么?
- memory - 在内核中创建临时全局内存变量
- c# - 获取列表中具有另一个列表中的一个属性的所有项目的计数