@StaticMetamodel(Image.class)
public abstract class Image_ {
public static volatile SingularAttribute product;
public static volatile SingularAttribute id;
public static volatile SetAttribute versions;
public static volatile SingularAttribute index;
public static volatile SingularAttribute name;
}
和JOOQ表映射
@javax.annotation.Generated(value = { "http://www.jooq.org", "3.2.0" },
comments = "This class is generated by jOOQ")
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Image extends org.jooq.impl.TableImpl {
private static final long serialVersionUID = 1596930978;
/**
* The singleton instance of PUBLIC.IMAGE
*/
public static final vladmihalcea.jooq.schema.tables.Image IMAGE = new vladmihalcea.jooq.schema.tables.Image();
/**
* The class holding records for this type
*/
@Override
public java.lang.Class getRecordType() {
return vladmihalcea.jooq.schema.tables.records.ImageRecord.class;
}
/**
* The column PUBLIC.IMAGE.ID.
*/
public final org.jooq.TableField ID = createField("ID", org.jooq.impl.SQLDataType.BIGINT.nullable(false), this);
/**
* The column PUBLIC.IMAGE.INDEX.
*/
public final org.jooq.TableField INDEX = createField("INDEX", org.jooq.impl.SQLDataType.INTEGER, this);
/**
* The column PUBLIC.IMAGE.NAME.
*/
public final org.jooq.TableField NAME = createField("NAME", org.jooq.impl.SQLDataType.VARCHAR.length(255), this);
/**
* The column PUBLIC.IMAGE.PRODUCT_ID.
*/
public final org.jooq.TableField PRODUCT_ID = createField("PRODUCT_ID", org.jooq.impl.SQLDataType.BIGINT, this);
/**
* Create a PUBLIC.IMAGE table reference
*/
public Image() {
super("IMAGE", vladmihalcea.jooq.schema.Public.PUBLIC);
}
/**
* Create an aliased PUBLIC.IMAGE table reference
*/
public Image(java.lang.String alias) {
super(alias, vladmihalcea.jooq.schema.Public.PUBLIC, vladmihalcea.jooq.schema.tables.Image.IMAGE);
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Identity getIdentity() {
return vladmihalcea.jooq.schema.Keys.IDENTITY_IMAGE;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.UniqueKey getPrimaryKey() {
return vladmihalcea.jooq.schema.Keys.SYS_PK_10059;
}
/**
* {@inheritDoc}
*/
@Override
public java.util.List> getKeys() {
return java.util.Arrays.>asList(vladmihalcea.jooq.schema.Keys.SYS_PK_10059, vladmihalcea.jooq.schema.Keys.UK_OQBG3YIU5I1E17SL0FEAWT8PE);
}
/**
* {@inheritDoc}
*/
@Override
public java.util.List> getReferences() {
return java.util.Arrays.>asList(vladmihalcea.jooq.schema.Keys.FK_9W522RC4D0KFDKQ390IHV92GB);
}
/**
* {@inheritDoc}
*/
@Override
public vladmihalcea.jooq.schema.tables.Image as(java.lang.String alias) {
return new vladmihalcea.jooq.schema.tables.Image(alias);
}
}
private List getImageProductDTOs_JOOQ() {
return transactionTemplate.execute(new TransactionCallback>() {
@Override
public List doInTransaction(TransactionStatus transactionStatus) {
return jooqContext
.select(IMAGE.NAME, PRODUCT.NAME)
.from(IMAGE)
.join(PRODUCT).on(IMAGE.PRODUCT_ID.equal(PRODUCT.ID))
.where(PRODUCT.NAME.likeIgnoreCase("%tv%"))
.and(IMAGE.INDEX.greaterThan(0))
.orderBy(IMAGE.NAME.asc())
.fetch().into(ImageProductDTO.class);
}
});
}
生成以下SQL
SELECT "PUBLIC"."image"."name",
"PUBLIC"."product"."name"
FROM "PUBLIC"."image"
JOIN "PUBLIC"."product"
ON "PUBLIC"."image"."product_id" = "PUBLIC"."product"."id"
WHERE ( Lower("PUBLIC"."product"."name") LIKE Lower('%tv%')
AND "PUBLIC"."image"."index" > 0 )
ORDER BY "PUBLIC"."image"."name" ASC
这是我第一次使用JOOQ,花了我太多时间浏览文档并在Hibernate Facts编码示例中进行了所有设置。JOOQ查询的构建感觉很自然,就像编写本机SQL代码一样,因此我不必真正学习API就能知道如何使用它。我将很自豪地将其添加到我的Java Data Toolbox中。
public class OcuppyMoreThanHalf {
/**
* Q74 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
* two solutions:
* 1.O(n)
* see <beauty of coding>--每次删除两个不同的数字,不改变数组的特性
* 2.O(nlogn)
* 排序。中间
cygwin很多命令显示command not found的解决办法
修改cygwin.BAT文件如下
@echo off
D:
set CYGWIN=tty notitle glob
set PATH=%PATH%;d:\cygwin\bin;d:\cygwin\sbin;d:\cygwin\usr\bin;d:\cygwin\usr\sbin;d:\cygwin\us