Amo*_*aje 7 spring hibernate jpa spring-data-jpa spring-boot
我想在JPA中生成自定义ID,它必须是表的主键.有很多例子可以创建自定义ID使用像Hibernate 这样
我想相同的实现,但在JPA.The ID必须是字母数字像STAND0001
谢谢.
您可以这样使用GenericGenerator:
@Entity
public class Client {
@Id
@GenericGenerator(name = "client_id", strategy = "com.eframe.model.generator.ClientIdGenerator")
@GeneratedValue(generator = "client_id")
@Column(name="client_id")
private String clientId;
}
Run Code Online (Sandbox Code Playgroud)
和自定义生成器类(将在ID之前添加前缀,您可以根据自己的喜好进行设置):
public class ClientIdGenerator implements IdentifierGenerator {
@Override
public Serializable generate(SessionImplementor session, Object object)
throws HibernateException {
String prefix = "cli";
Connection connection = session.connection();
try {
Statement statement=connection.createStatement();
ResultSet rs=statement.executeQuery("select count(client_id) as Id from Client");
if(rs.next())
{
int id=rs.getInt(1)+101;
String generatedId = prefix + new Integer(id).toString();
return generatedId;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8173 次 |
| 最近记录: |