使用Hibernate显式更改列的名称

时间:2013-01-14 14:01:40

标签: java hibernate jpa hibernate-mapping

如何在生成Hibernate的表中重命名字段名? 创建时:

@ManyToMany(targetEntity = GroupRightEntity.class)
or
@ManyToMany(targetEntity = UserRightEntity.class)

现在使用数据库中列的名称进行显式更改。

alter table security_mapping_user rename column sec_mapping_id to secmappingentity_id;

感谢您的帮助和理解。


Hibernate为其他表生成链接。据此,我了解生成的字段名称。我需要使用注释或其他东西,这些列名称会发生​​变化。我希望我能正确地写下一切。


我们有。

@Entity
@Table(name = "ROLE")
public class RoleEntity implements Role, Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(generator = "SEQ_ROLE")
    @SequenceGenerator(name = "SEQ_ROLE", sequenceName="SEQ_ROLE", allocationSize = 1)
    private Long id;
    private String name;
    private String description;

@Entity
@Table(name = "URL")
public class UrlEntity implements Url, Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(generator = "SEQ_URL")
    @SequenceGenerator(name="SEQ_URL", sequenceName="SEQ_URL", allocationSize = 1)
    private Long id;
    private String url;
    @OneToMany(targetEntity = RoleEntity.class, fetch = FetchType.EAGER, mappedBy="url_id")
    private Set<Role> roles;

稍后我们会得到第三张桌子。 “URL_ROLE”

在此表中,字段已命名。 “URL_ID”和“ROLE_ID”

“URL_ID”需要重命名“urlentity_id”中的字段。

现在看来我正确地构建了一切。

1 个答案:

答案 0 :(得分:0)

定义ManyToMany时,您还应该定义关系映射到哪一列。那是你应该改名的地方。