我遇到了一个持久存在对象的小问题。这是我的实体类的样子。
@Entity
public class Example(){
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private int number;
private String sentence;
/* No arg const, getters and setters omitted */
CrudRepository接口:
@Repository
public interface ExampleRepository extends CrudRepository<Example, Integer>
{}
实现接口的服务:
@Service
public class ExampleService{
@Autowired
public ExampleRepository exampleRepository;
public void save(Example example){
exampleRespository.save(example)
}
}
CommandLineRunner内部:
Example example1 = new Example();
example1.sentence("Hello World!");
exampleService.save(example1);
现在我遇到的问题是,即使我没有为属性编号分配任何值,它仍然会被保持为0.如何阻止该属性被分配给值为0并使其为空?
答案 0 :(得分:0)
更改
private int number;
进入
private Integer number;
答案 1 :(得分:0)
上面的解决方案很好但是如果你在插入查询中看到你的保存功能,它会插入所有3列,即使你只分配了一列example1.sentence("Hello World!");
您可以在实体级别使用@DynamicInsert(true)
@DynamicUpdate(true)
,
这将激活查询
insert into example(sentence) values('Hello World!');
因此查询性能会提高