首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hibernate 5:如何忽略@Column的命名策略?

在Hibernate 5中,可以通过使用@Column注解的name属性来指定列的名称,但是有时候我们希望忽略@Column注解的命名策略,即使用默认的命名策略。为了实现这一点,可以使用@AttributeOverride注解。

@AttributeOverride注解可以用于覆盖实体类中属性的映射信息,包括列名、类型等。通过在实体类的属性上使用@AttributeOverride注解,可以覆盖@Column注解的命名策略。

下面是一个示例:

代码语言:txt
复制
@Entity
@Table(name = "my_table")
public class MyEntity {

    @Id
    private Long id;

    @AttributeOverrides({
        @AttributeOverride(name = "firstName", column = @Column(name = "first_name")),
        @AttributeOverride(name = "lastName", column = @Column(name = "last_name"))
    })
    private Name name;

    // 其他属性和方法
}

@Embeddable
public class Name {

    private String firstName;
    private String lastName;

    // 构造方法、getter和setter等
}

在上面的示例中,MyEntity实体类中的name属性使用了@AttributeOverride注解来覆盖Name类中的firstNamelastName属性的映射信息。通过指定column属性,我们可以指定这两个属性在数据库中的列名。

这样,当Hibernate生成SQL语句时,会使用@AttributeOverride注解中指定的列名,而忽略@Column注解的命名策略。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器CVM。

腾讯云数据库MySQL产品介绍链接地址:https://cloud.tencent.com/product/cdb

腾讯云云服务器CVM产品介绍链接地址:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券