我有一个包含96个预定义数据行的数据库表roles
,但是当我启动服务器(在Tomcat 8.5.28上运行)时,它会清空该表。我想知道为什么会这样做?
RoleController
@RestController
public class RoleController {
private final Logger logger = LoggerFactory.getLogger(RoleController.class);
final RoleServiceImpl roleService;
@Autowired
public RoleController(RoleServiceImpl roleService) {
this.roleService = roleService;
}
@RequestMapping(method = RequestMethod.GET)
public Iterable<Role> getAllRolesByName() {
return roleService.list();
}
}
角色(模型/实体)
@Entity
@Table(name = "roles")
public class Role {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name")
private String name;
// region: constructors
public Role() {
}
public Role(String name) {
this.name = name;
}
// endregion: constructors
// region: getters & setters
public int getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// endregion: getters & setters
// region: methods
// endregion: methods
}
UserServiceImpl
@Service
public class RoleServiceImpl implements RoleService {
private final RoleRepository roleRepository;
@Autowired
public RoleServiceImpl(RoleRepository roleRepository) {
this.roleRepository = roleRepository;
}
public Iterable<Role> list() {
return roleRepository.findAll();
}
}
RoleService
public interface RoleService {
}
RoleRepository
public interface RoleRepository extends CrudRepository<Role, Integer> {
}
我每次启动服务器时都可以加载预定义的96个数据行,但我想知道这是否正常。 (即如果这个服务器是活的,我不得不关闭它进行维护或类似的事情,它会清空表中的所有数据吗?我觉得有点奇怪。) ---附加说明--- 我正在使用Postgres和Hibernate。我的配置是100%Java。 先感谢您!
你能检查一下hibernate属性文件中字段“hibernate.hbm2ddl.auto”的替换值是什么。
如果hibernate.hbm2ddl.auto =“create”或“create-drop”将导致在服务器重启期间删除数据。
hibernate.hbm2ddl.auto =“create”或“create-drop”强制db重置。