【问题标题】:How to set table name for @ElementCollection in hibernate如何在休眠中为@ElementCollection 设置表名
【发布时间】: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
【问题讨论】:
标签:
java
hibernate
annotations
【解决方案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) };