Spring data jpa с динамическим префиксом - PullRequest
0 голосов
/ 02 января 2019

Я использую генератор идентификатора пользовательской последовательности для генерации первичного ключа .Я хочу добавить динамический префикс к первичному ключу перед сохранением объекта в базе данных.

Вот мой класс Entity.

@Entity
@Table(name = "PRODUCT")
@Getter
@Setter
@NoArgsConstructor
public class Product implements Serializable {

private static final long serialVersionUID = -788207637359711534L;

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = 
"PRODUCT_SEQ")
@GenericGenerator(name = "PRODUCT_SEQ", strategy = 
"com.bbi.fam.utils.StringPrefixedSequenceIdGenerator", parameters = {
        @Parameter(name = StringPrefixedSequenceIdGenerator.INCREMENT_PARAM, 
value = "10")})
@Column(name = "ID")
@Length(max = 50)
private String id;

@Column(name = "NAME")
private String name;

@Transient
private String prefix;

public Product(@Length(max = 50) String id, String name, String prefix) {
    this.id =  id;
    this.name = name;
    this.prefix = prefix;
}

}

, а вот мой класс генератора пользовательских идентификаторов.

public class StringPrefixedSequenceIdGenerator extends SequenceStyleGenerator {
private String format;

@Override
public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException {
    return String.format(format, super.generate(session, object));
}

@Override
public void configure(Type type, Properties params, ServiceRegistry serviceRegistry) throws MappingException {
    super.configure(LongType.INSTANCE, params, serviceRegistry);
    String valuePrefix = null; 
    valuePrefix = ConfigurationHelper.getString("valuePrefix", params, "test" );
    String numberFormat = ConfigurationHelper.getString("numberFormat", params, "%06d");
    format = valuePrefix + numberFormat;
}

}

Я хочу использовать valuePrefix в качестве динамического.Можете ли вы указать мне, как это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...