当前位置: 首页 > news >正文

微信网站开发报价表山东网络推广咨询电话

微信网站开发报价表,山东网络推广咨询电话,网站建设与设计致谢,京京商城现在的情况是#xff0c;在MySQL中有db1和db2两个数据库。项目使用Hibernate#xff0c;可同时访问db1和db2#xff0c;默认数据库为db1。表table2在db2中。且table2的主键名为ids#xff0c;是自增长字段#xff08;Auto Increment#xff09;。 table2和ids的定义为在MySQL中有db1和db2两个数据库。项目使用Hibernate可同时访问db1和db2默认数据库为db1。表table2在db2中。且table2的主键名为ids是自增长字段Auto Increment。 table2和ids的定义为 Entity Table(name table2, schema db2) Cache(usage CacheConcurrencyStrategy.READ_WRITE) public class Table2 implements java.io.Serializable {private static final long serialVersionUID 48L;IdColumn(name ids)GeneratedValue(generator idGenerator, strategy GenerationType.IDENTITY)GenericGenerator(name idGenerator, strategy increment)private Integer ids; 当向table2中保存数据时会报错。原因是生成ids时系统会查询table2中ids的最大值。语句是 select max(ids) from table2 由于默认数据库是db1因此查询的是db1.table2表。但table2表实际上在db2中所以系统找不到该表从而报错。 这就需要在GenericGenerator中指定max查询语句的schema。通过检查错误信息发现对应代码在org.hibernate.id.IncrementGenerator.configure()方法中如下 public void configure(Type type, Properties params, Dialect dialect) throws MappingException {returnClass type.getReturnedClass();ObjectNameNormalizer normalizer ( ObjectNameNormalizer ) params.get( PersistentIdentifierGenerator.IDENTIFIER_NORMALIZER );String column params.getProperty( column );if ( column null ) {column params.getProperty( PersistentIdentifierGenerator.PK );}column dialect.quote( normalizer.normalizeIdentifierQuoting( column ) );String tableList params.getProperty( tables );if ( tableList null ) {tableList params.getProperty( PersistentIdentifierGenerator.TABLES );}String[] tables StringHelper.split( , , tableList );final String schema dialect.quote(normalizer.normalizeIdentifierQuoting(params.getProperty( PersistentIdentifierGenerator.SCHEMA )));final String catalog dialect.quote(normalizer.normalizeIdentifierQuoting(params.getProperty( PersistentIdentifierGenerator.CATALOG )));StringBuilder buf new StringBuilder();for ( int i0; i tables.length; i ) {final String tableName dialect.quote( normalizer.normalizeIdentifierQuoting( tables[i] ) );if ( tables.length 1 ) {buf.append( select max( ).append( column ).append( ) as mx from );}buf.append( Table.qualify( catalog, schema, tableName ) );if ( i tables.length-1 ) {buf.append( union );}}if ( tables.length 1 ) {buf.insert( 0, ( ).append( ) ids_ );column ids_.mx;}sql select max( column ) from buf.toString();} 在初始化Table2实体类时该方法就会执行。作用是生成对应数据库的select max语句。 在IncrementGenerator的注释中有一段话 Mapping parameters supported, but not usually needed: tables, column. (The tables parameter specified a comma-separated list of table names.) 说明在GenericGenerator中可以设置参数。在IncrementGenerator.configure()方法中可以将这些参数读出来。读取参数的方法为params.getProperty(参数名)。例如 params.getProperty( column ) 就是读取column参数的值。对应读取schema的语句为 final String schema dialect.quote(normalizer.normalizeIdentifierQuoting(params.getProperty( PersistentIdentifierGenerator.SCHEMA )) ); schema的参数名就是PersistentIdentifierGenerator.SCHEMA也就是schema。其他预置保留参数的值大都在org.hibernate.id.PersistentIdentifierGenerator中定义。如 public interface PersistentIdentifierGenerator extends IdentifierGenerator {/*** The configuration parameter holding the schema name*/public static final String SCHEMA schema;/*** The configuration parameter holding the table name for the* generated id*/public static final String TABLE target_table;/*** The configuration parameter holding the table names for all* tables for which the id must be unique*/public static final String TABLES identity_tables;/*** The configuration parameter holding the primary key column* name of the generated id*/public static final String PK target_column;/*** The configuration parameter holding the catalog name*/public static final String CATALOG catalog;/*** The key under whcih to find the {link org.hibernate.cfg.ObjectNameNormalizer} in the config param map.*/public static final String IDENTIFIER_NORMALIZER identifier_normalizer; 在GenericGenerator中设置parameter的方法为 Id Column(name ids) GeneratedValue(generator idGenerator, strategy GenerationType.IDENTITY) GenericGenerator(name idGenerator, strategy increment, parameters Parameter(name PersistentIdentifierGenerator.SCHEMA, value db2)) private Integer ids; 这样就能在table2前加上正确的schema名称db2生成正确的查询语句 select max(ids) from db2.table2 如果有多个参数可以写为 GenericGenerator(name idGenerator, strategy increment, parameters {             Parameter(name PersistentIdentifierGenerator.SCHEMA, value db2),             Parameter(namePersistentIdentifierGenerator.CATALOG, value db2) })
http://www.hkea.cn/news/14281941/

相关文章:

  • 广西建设主管部门网站做快三网站
  • 什么浏览器可以看任何网站网站建设 合作协议
  • 生成html网站地图通江移动网站建设
  • html怎么做音乐网站wordpress最大上传大小怎么改
  • 网站开发 男生江苏网站seo营销模板
  • 企业做企业网站的好处aardio能开发手机应用吗
  • 国内做网站最大的公司有哪些大型门户网站都有
  • 深圳建网站seo一键生成简历
  • 搭建个网站深圳博纳网站建设
  • 制作招商加盟网站微信公众号登录界面
  • 婺源做网站北京做兼职从哪个网站好
  • 积分兑换商城网站建设wordpress 手机 主题
  • 网站建设找哪个做网站用html还是php
  • 免费网站商城模板安卓系统开发者
  • dede医院网站模板wordpress 收不到邮件
  • 一个专业做设计的网站wordpress如何实现支付功
  • jsp 网站开发例子中国城乡建设网站
  • 网络优化网站建设i国网app免费下载
  • 微信微网站开发营销策划的内容包括哪些
  • 网站建设的作用和用途电脑培训网上培训班
  • 谈谈对电子商务网站建设与管理做网站中怎么设置单张图片
  • 怎么让百度搜到自己的网站wordpress放哪
  • 网站首页设计常见的6种布局方式网站秒收录秒排名
  • 佛山市网站建设 骏域动力上海网站推广系统
  • 大连模板网站制作报价贵阳网站推广¥做下拉去118cr
  • 大庆网站建设黑icp备1900潞城网站建设
  • 商务网站建设内容域名备案在哪里办
  • 济南地区做企业网站的公司微信公众平台开发者工具
  • 运营型网站网络彩票建立网站
  • 做外贸网站选择服务器湖南长沙招聘信息最新招聘2022