读书人

在 Hibernate 中基于 Annotation 主键

发布时间: 2012-06-26 10:04:13 作者: rapoo

在 Hibernate 中基于 Annotation 主键生成策略
首先show一个例子:

public class AssignedSequenceGenerator extends SequenceGenerator implements PersistentIdentifierGenerator, Configurable { private String entityName;   public void configure(Type type, Properties params, Dialect dialect) throws MappingException {   entityName = params.getProperty(ENTITY_NAME);   if (entityName==null) {    throw new MappingException("no entity name");   }     super.configure(type, params, dialect);  } public Serializable generate(SessionImplementor session, Object obj)   throws HibernateException {     Serializable id = session.getEntityPersister( entityName, obj )     .getIdentifier( obj, session.getEntityMode() );     if (id==null) {    id = super.generate(session, obj);   }     return id; } }
实际应用中,定义同sequence。

@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy= "AssignedSequenceGenerator",
parameters = { @Parameter(name = "sequence", value= "seq_payablemoney") })

读书人网 >开源软件

热点推荐