自动为@Embeddable类的列名添加前缀
问题内容:
我正在开发一个项目,通过添加Hibernate批注来保留一些POJO。我遇到的一个问题是这样的代码失败,因为Hibernate尝试将内的子字段映射Time_T
到同一列上(即startTime.sec
,stopTime.sec
两者都试图映射到colum
sec
,从而导致错误)。
@Entity
public class ExampleClass
{
@Id
long eventId;
Time_T startTime;
Time_T stopTime;
}
@Embeddable
public class Time_T
{
int sec;
int nsec;
}
由于会有很多出现这样在整个系统中,这将是很好,如果有一个选项来自动添加一个前缀列的名称(例如使列是startTime_sec
,startTime_nsec
,stopTime_sec
,stopTime_nsec
),而不必基于每个应用覆盖领域基础。Hibernate是否具有此功能,或者是否有其他合理的解决方法?
问题答案:
尝试将属性设置hibernate.ejb.naming_strategy
为org.hibernate.cfg.DefaultComponentSafeNamingStrategy