web-dev-qa-db-ja.com

hibernateで@ElementCollectionのテーブル名を設定する方法

使ってます

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

ご協力ありがとうございました!

15
user6651439

アノテーション@CollectionTable(name = "your_table_name")を使用します

25
Ashwani Tiwari

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;

}

DBのスキーマ:

CREATE TABLE SERVICES { ID BIGINT };
CREATE TABLE SERVICE_LINKED_CODES { SERVICE_ID BIGINT, CODE VARCHAR(255) };
11
Míra