【发布时间】:2018-11-12 08:41:30
【问题描述】:
我点击了这个链接: https://vladmihalcea.com/how-to-map-calculated-properties-with-hibernate-generated-annotation/
这是我的源代码:
private String firstName;
private String lastName;
private String middleName1;
private String middleName2;
private String middleName3;
private String middleName4;
private String middleName5;
@Generated( value = GenerationTime.ALWAYS )
@Column(columnDefinition =
"AS CONCAT(" +
" COALESCE(firstName, ''), " +
" COALESCE(' ' + middleName1, ''), " +
" COALESCE(' ' + middleName2, ''), " +
" COALESCE(' ' + middleName3, ''), " +
" COALESCE(' ' + middleName4, ''), " +
" COALESCE(' ' + middleName5, ''), " +
" COALESCE(' ' + lastName, '') " +
")")
private String fullName;
它使用其他 string 字段来生成 fullname 字段。
我想要的是不同的东西。
我在 Spring Boot 类中有一个自动增量 id 字段:
private long id //or it can be int, does not matter
我还有另一个字段,它必须是唯一的并且是字母数字的。
private String code;
此字段将有 6 个字母数字(大小写无关)。
是否可以在创建新对象时自动保存此字段,使用这种方法?
Long.toString("id_field_value",36);
实际上,它给出了:
0 -> 0
1 -> 1
10 -> A
因此,当创建第一个对象时,id 将为 1。
有什么建议吗?
【问题讨论】:
-
要根据id生成code字段吗?
-
@EugenCovaci 是的。两者都是独一无二的,因此无需使用其他方法来生成另一个字母数字。 id 已经递增并自动生成。