Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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


2 Answers

Use annotation @CollectionTable(name="your_table_name")

like image 60
Ashwani Tiwari Avatar answered Sep 03 '25 01:09

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;

}

Schema in DB:

CREATE TABLE SERVICES { ID BIGINT };
CREATE TABLE SERVICE_LINKED_CODES { SERVICE_ID BIGINT, CODE VARCHAR(255) };
like image 35
Míra Avatar answered Sep 03 '25 00:09

Míra



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!