user6651439
user6651439

Reputation:

How to set table name for @ElementCollection in hibernate

I am using

public class UserTask extends BaseObject implements Serializable {
    
    @ElementCollection(targetClass = java.lang.String.class) 
    private List<String> userTaskMessage = new ArrayList<>();
   
   .
   .
   .
   .

Hibernate generate table, which name is usertask_usertaskmessage.

How do I set my name? For example my_table_example

Upvotes: 36

Views: 18634

Answers (2)

M&#237;ra
M&#237;ra

Reputation: 1566

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;

}

Schema in DB:

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

Upvotes: 38

Ashwani Tiwari
Ashwani Tiwari

Reputation: 1577

Use annotation @CollectionTable(name="your_table_name")

Upvotes: 60

Related Questions