Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree

日期:2011年12月02日 分类:编程相关

这是一个Hibernate bug,具体可以查看这里:https://hibernate.onjira.com/browse/HHH-2045,截止目前的状态还是Open。

通常是查询时 “in” 后面的集合为空时造成的。

比较简单的解决办法:

当集合为空时,给该空集合加入一个永远都不可能匹配上的值,让不为空。

还有另外一种稍简单办法就是拼接sql语句。

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font ‘黑体’ is not available to the JVM

日期:2011年11月29日 分类:编程相关

有些系统可能没有黑体,那么只能继续使用默认字体,当然也可以考虑把黑体的字体文件加入classpath中

下面说一下使用默认字体:

开发 jasperreports-4.1.2.jar包,找到:default.jasperreports.properties
在这里修改jasperreports的默认字体设置

# Font settings
net.sf.jasperreports.default.font.name=SansSerif
net.sf.jasperreports.default.font.size=10
net.sf.jasperreports.default.pdf.font.name=Helvetica
net.sf.jasperreports.default.pdf.encoding=Cp1252
net.sf.jasperreports.default.pdf.embedded=false
net.sf.jasperreports.awt.ignore.missing.font=false

其中

net.sf.jasperreports.awt.ignore.missing.font=true

是关键所在。

修改完再扔回包里,就可以了。

时不时浮出水面喘口气

日期:2011年11月18日 分类:随记

透透气

photo from internet

Querying @ElementCollections

日期:2011年11月03日 分类:编程相关

在JPA 2.0中使用到注解 @ElementCollection

public class Budget extends IdEntity {

@ElementCollection(fetch = FetchType.EAGER)
@Column(name = "projectLeaderIDs")
private List<String> projectLeaderIDs;
}

在@ElementCollection的属性中做查询

String sql = "select count(b) from " + Budget.class.getSimpleName()
                + " b,IN (b.projectLeaderIDs) s where :userID in s";

show sql:

Hibernate:
    select
        count(budget0_.id) as col_0_0_
    from
        budget budget0_
    inner join
        Budget_projectLeaderIDs projectlea1_
            on budget0_.id=projectlea1_.Budget_id
    where
        ? in (
            projectlea1_.projectLeaderIDs
        ) limit ?

在对List做remove操作时抛出java.lang.UnsupportedOperationException

日期:2011年10月27日 分类:编程相关

原因:
那个List是通过Arrays.asList()这个方法构造的,一直以为返回的就是一个ArrayList,今天查看了源码发现错了,是Arrays里面一个名叫ArrayList的私有类。

public class Arrays {
...
public static  List asList(T... a) {
	return new ArrayList(a);
}

private static class ArrayList extends AbstractList
	implements RandomAccess, java.io.Serializable
{
...
}
...
}

它也继承自AbstractList,只是没有实现remove方法,而AbstractList类中remove方法默认是抛java.lang.UnsupportedOperationException异常的。

public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
...
public E remove(int index) {
	throw new UnsupportedOperationException();
}
...
}

移动平台和桌面平台的区别

日期:2011年10月26日 分类:互联网产品

 
可以拍摄任何景物 只能拍到用户自己(摄像头)
只能输入少量文本 可以输入大量文本
很难加快数据传输速度 能适当加快数据传输速度
只能显示少量信息 可以显示大量信息
只能保存适量信息 可以保存大量信息
随时随地使用(便携性好) 只能坐下来使用(便携性差)
能够精确识别位置和方向(GPS+网络定位) 只能在某种程度上识别位置(网络定位)
一般只能通过无线网络连接到其他设备 基本上都可以通过有线和无线网络连接到其他设备

from《简约之上 交互式设计四策略》

cannot simultaneously fetch multiple bags 问题的解决办法

日期:2011年10月24日 分类:编程相关

完整的异常信息如下:

org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
	at org.hibernate.loader.BasicLoader.postInstantiate(BasicLoader.java:94)
	at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:119)
	at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:71)
	at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:54)
	at org.hibernate.loader.entity.BatchingEntityLoader.createBatchingEntityLoader(BatchingEntityLoader.java:133)
	at org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader(AbstractEntityPersister.java:1914)
	at org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader(AbstractEntityPersister.java:1937)
	at org.hibernate.persister.entity.AbstractEntityPersister.createLoaders(AbstractEntityPersister.java:3205)
	at org.hibernate.persister.entity.AbstractEntityPersister.postInstantiate(AbstractEntityPersister.java:3191)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:348)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)

问题是什么时候出现的呢?

当一个实体对象中包含多于一个non-lazy获取策略时,比如@OneToMany,@ManyToMany或者@ElementCollection时,获取策略为(fetch = FetchType.EAGER)

长城宽带的蜘蛛网

日期:2011年10月16日 分类:随记

瞧瞧俺们小区长城宽带交换机情况,实在是无语了,最近接连出现了几次网络故障,都是这块的问题。

交换机所处的地方任何人都可以去,没有锁,谁手欠把电源断了,或者哪家新拉网线不小心把其他人的网线碰掉了,这都太容易了。

DoubanFM v1.0.0 for TouchPad 发布

日期:2011年10月05日 分类:互联网产品, 移动开发

介绍:

DoubanFM for TouchPad 基于豆瓣电台开放API接口打造的一款TouchPad音乐播放软件,打开就可以听歌。

App 左侧是豆瓣电台频道列表,中间是某一频道的歌曲列表,点频道可以刷新歌曲列表,右侧是歌曲所在专辑信息。

频道内的歌曲支持自动播放,播放完一拨歌曲会自动获取另一拨。

App还在继续完善中,欢迎大家提供反馈,谢谢支持。

DoubanFM for TouchPad

日期:2011年09月30日 分类:互联网产品, 移动开发

1、选来选去,还是使用了经典的三栏模式,左侧豆瓣电台频道,中间歌曲,右侧显示该专辑豆瓣网站的详细信息,支持选中的电台频道内自动播放。

DoubanFM

2、按住中间下发拖动区域左侧拖动,电台频道折叠,专注频道内歌曲和右侧专辑信息。

无觅相关文章插件,快速提升流量