如何在休眠中为@ElementCollection 设置表名
Posted
技术标签:
【中文标题】如何在休眠中为@ElementCollection 设置表名【英文标题】:How to set table name for @ElementCollection in hibernate 【发布时间】:2016-12-03 09:13:37 【问题描述】:我正在使用
public class UserTask extends BaseObject implements Serializable
@ElementCollection(targetClass = java.lang.String.class)
private List<String> userTaskMessage = new ArrayList<>();
.
.
.
.
Hibernate 生成表,名称为usertask_usertaskmessage
。
如何设置我的名字?例如my_table_example
【问题讨论】:
【参考方案1】:使用注解@CollectionTable(name="your_table_name")
【讨论】:
【参考方案2】:JPA:
@Entity
@Table(name = "SERVICES")
public class Service
@Id
@Column(name = "ID")
private Long id;
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "SERVICE_LINKED_CODES", joinColumns = @JoinColumn(name = "SERVICE_ID"))
@Column(name = "CODE")
private List<String> linkedCodes;
数据库中的架构:
CREATE TABLE SERVICES ID BIGINT ;
CREATE TABLE SERVICE_LINKED_CODES SERVICE_ID BIGINT, CODE VARCHAR(255) ;
【讨论】:
以上是关于如何在休眠中为@ElementCollection 设置表名的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Hibernate 获得 @ElementCollection 的总和?
是否可以通过 ElementCollection 查询 JPA 实体,其中 ElementCollection 包含给定元素集中的所有元素?
在休眠中为同一实体的 MySQL 和 SQL 服务器配置差异表名称