如何只保留spring crudrepository中分配的属性?

时间:2017-09-19 18:51:22

标签: spring spring-data-jpa

我遇到了一个持久存在对象的小问题。这是我的实体类的样子。

@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并使其为空?

2 个答案:

答案 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!');

因此查询性能会提高