使用@JoinTable 时如何更改特定列名

问题描述

这是示例代码

public class Address{
@Column(name = "STREET_NAME")
private String street;
@Column(name = "CITY_NAME")
private String city;
@Column(name = "STATE_NAME")
private String state;
@Column(name = "PIN_CODE")
private int pin;
//setters and getters
}

public class User {

@Id 
@GeneratedValue
@Column(name="user_id")
private int userId;

@ElementCollection
@JoinTable(name="USER_ADDRESS",joinColumns = @JoinColumn(name="USER_ID"))
private Set<Address> listofAddresses=new HashSet();
//setters and getters
}

我没有使用@Column 注释访问/修改地址类。 @JoinColumn 只是单独更改主键名称。 现在,如何从 User 类中更改 Address 的街道名称

解决方法

使用 orm.xml 覆盖映射。另见https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#bootstrap-jpa-xml-files