我正在使用org.hibernate.cfg.ImprovedNamingStrategy,但对于一个表我已经明确指定了表名
@Table(name="EventLog",schema = "eventlogs")
Run Code Online (Sandbox Code Playgroud)
但是hibernate似乎在寻找event_log.不应该显式命名覆盖ImprovedNamingStrategy提供的命名
小智 10
如果您希望对所有表使用ImprovedNamingStrategy,除了明确指定名称的表,您可以使用下面的子类.该列名和表名的方法是当明确指定一个名字叫的,这个子类离开指定的名称不受干扰.
我认为这不是默认行为,这很奇怪.
public class RespectfulImprovedNamingStrategy extends ImprovedNamingStrategy
{
@Override
public String columnName(String columnName)
{
return columnName;
}
@Override
public String tableName(String tableName)
{
return tableName;
}
}
Run Code Online (Sandbox Code Playgroud)
它是org.hibernate.cfg.ImprovedNamingStrategy的行为,它将混合大小写的名称转换为嵌入的下划线名称.http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/cfg/ImprovedNamingStrategy.html.因此,如果您明确使用名称"EventLog",它将转换为"event_log".
如果您只想使用在其中明确指定的名称@Table,则应使用org.hibernate.cfg.DefaultNamingStrategy.默认情况下,在实例化org.hibernate.cfg.Configuration对象时使用它
| 归档时间: |
|
| 查看次数: |
14901 次 |
| 最近记录: |