【发布时间】:2013-07-31 19:05:10
【问题描述】:
我使用的是休眠 4.1.2
我想在表格中插入一些数据。
我知道在hibernate配置中用sql可以这样实现:<property name="hibernate.hbm2ddl.import_files" value="/file1.sql,/file2.sql"/>.
但是,有没有其他方法在hibernate启动后只在Java代码中自动插入一次数据?
我想这样做:
public Role getRoleByName(EnumRole name)
{
return (Role) sessionFactory.getCurrentSession()
.createQuery("from Role where name = :name")
.setParameter("name", name).uniqueResult();
}
public void insertRoles(){
for(EnumRole role:EnumRole.values())
{
Role r=getRoleByName(role);
if(r==null)
{
r=new Role();
r.setName(role);
r.setDescription(role.getDescription());
sessionFactory.getCurrentSession().save(r);
}
}
枚举角色:
public enum EnumRole {
ROLE_CLIENT("РОЛЬ КЛИЕНТА"),
ROLE_ADMIN("РОЛЬ АДМИНСТРАТОРА"),
ROLE_CONSUMER("РОЛЬ КОМПАНЬОНА"),
ROLE_ANONYMOUS("НЕ АВТОРИЗОВАННЫЙ ПОЛЗОВАТЕЛЬ");
EnumRole(String descriptin)
{
this.descriptin=descriptin;
}
public String getDescription()
{
return this.descriptin;
}
private String descriptin;
}
【问题讨论】:
标签: java spring hibernate enums