Reputation: 120
I am persisting entity to mysql database. my requirement is to store id as BR01 , BR02 ,... etc. instead of storing as 1,2,.. etc.
how can i store id as BR01,BR02,.. etc?
I know sequence is not supported in mysql database.
my entity class is as follows :
package com.kabira.hrm.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
@Entity
@Table(name="branch")
public class Branch
{
private Long id;
private String country;
private String state;
private String city;
private String address;
private String phoneNumber;
@Id
@GeneratedValue
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
public String getCountry()
{
return country;
}
public void setCountry(String country)
{
this.country = country;
}
public String getState()
{
return state;
}
public void setState(String state)
{
this.state = state;
}
public String getCity()
{
return city;
}
public void setCity(String city)
{
this.city = city;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
public String getPhoneNumber()
{
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber)
{
this.phoneNumber = phoneNumber;
}
@Override
public String toString()
{
return "Branch [id=" + id + "]";
}
}
Upvotes: 1
Views: 1646
Reputation: 1185
Write custom generator class and put the logic there to fetch max id from db and you would parse number from that id and convert that number into an integer and make increment to that number and again concat with your required prefix and return concatenated value.
write this logic here
import org.hibernate.id.IdentifierGenerator;
public class MyGenerator implements IdentifierGenerator {@
Override
public Serializable generate(SessionImplementor session, Object object){
// your logic comes here.
}
}
Upvotes: 0
Reputation: 811
You can extend org.hibernate.id.enhanced.SequenceStyleGenerator
and use it with annotations @GenericGenerator.
Upvotes: 1
Reputation: 1628
You may want to check out a solution like this. Hibernate: How specify custom sequence generator class name using annotations? This way you make your own key generator.
Upvotes: 0