Heim >Datenbank >MySQL-Tutorial >hibernate 自定义UUID(mysql uuid_short)_MySQL

hibernate 自定义UUID(mysql uuid_short)_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 13:35:011327Durchsuche

Hibernate

bitsCN.com

 

 

UUID生成类

  3 import org.apache.commons.logging.Log; 4 import org.apache.commons.logging.LogFactory; 5 import org.hibernate.HibernateException; 6 import org.hibernate.MappingException; 7 import org.hibernate.dialect.Dialect; 8 import org.hibernate.engine.SessionImplementor; 9 import org.hibernate.exception.JDBCExceptionHelper;10 import org.hibernate.id.Configurable;11 import org.hibernate.id.IdentifierGenerator;12 import org.hibernate.type.Type;13 14 import java.io.Serializable;15 import java.sql.PreparedStatement;16 import java.sql.ResultSet;17 import java.sql.SQLException;18 import java.util.Properties;19 20 /**21  * Created with IntelliJ IDEA.22  * User: Administrator23  * Date: 13-5-824  * Time: 下午6:1525  * To change this template use File | Settings | File Templates.26  */27 public class ShortUUIDIncrementGenerator implements IdentifierGenerator, Configurable {28     private static final Log log = LogFactory.getLog(ShortUUIDIncrementGenerator.class);29     private final String sql = "select uuid_short()";30 31     @Override32     public Serializable generate(SessionImplementor sessionImplementor, Object o) throws HibernateException {33         synchronized (this) {34             try {35                 PreparedStatement st = sessionImplementor.getBatcher().prepareSelectStatement(sql);36                 try {37                     ResultSet rs = st.executeQuery();38                     final long result;39                     try {40                         rs.next();41                         result = rs.getLong(1);42                     } finally {43                         rs.close();44                     }45                     log.debug("GUID identifier generated: " + result);46                     return result;47                 } finally {48                     sessionImplementor.getBatcher().closeStatement(st);49                 }50             } catch (SQLException e) {51                 throw JDBCExceptionHelper.convert(52                         sessionImplementor.getFactory().getSQLExceptionConverter(),53                         e,54                         "could not retrieve GUID",55                         sql56                 );57             }58         }59     }60 61     @Override62     public void configure(Type type, Properties properties, Dialect dialect) throws MappingException {63         //To change body of implemented methods use File | Settings | File Templates.64     }65 66 }

 

配置:

    @Id    @GeneratedValue(generator = "shortUid")    @GenericGenerator(name = "shortUid", strategy = "com.up72.msi.util.ShortUUIDIncrementGenerator")    @Column(name = "id", unique = true, nullable = false, insertable = true, updatable = true, length = 19)    public java.lang.Long getId() {

 

 

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn