HibernateのHQLでDate(日付)をWhere句に入れて検索する場合
setDate()を使って値をバインドすると
バインドしたDate型の時刻(HH:MI:SS)が00:00:00にリセットされてしまっている様子(推測)
setTime()を使ってバインドするとリセットされずちゃんと比較
例えば
--------------------
hoge | 2008/6/19 10:00:00
--------------------
というデータをSelectする時に
from hoge where date <= :fromdate
で
Date型の2008/6/19 11:00:00という値を
setDate()でバインドすると、時刻がリセットされ
2008/6/19 00:00:00
で比較になりSelectされない
2008年6月19日木曜日
2008年4月8日火曜日
Google App Engineレビュー 1 (Hello, world)
Google App Engineのプレビュー版が公開され、先着1万名のテスターへ申し込めたので
試用してみたレビュー
OS:Windows Vista SP1
1.Python2.5.2のWindows版インスートーラーをダウンロードしてインストール
2.Google App Engine SDKをダウンロード、インストール
3.後はDocsを参考に"Hello, world"
Python Source作成
helloworld.py
------------------------------
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
------------------------------
試用してみたレビュー
OS:Windows Vista SP1
1.Python2.5.2のWindows版インスートーラーをダウンロードしてインストール
2.Google App Engine SDKをダウンロード、インストール
3.後はDocsを参考に"Hello, world"
Python Source作成
helloworld.py
------------------------------
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
------------------------------
同一ディレクトリに
YAMLフォーマットでアプリケーションの構成を定義した
設定ファイルを作る
---------------------------------------
application: helloworld
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: helloworld.py
---------------------------------------
SDKをインストールしたディレクトリにある
dev_appserver.pyに作成したアプリのディレクトリを引数で指定して実行すると
dev_appserver.py c:\googleapp\helloworld
ローカルWebサーバが起動され
http://localhost:8080からローカルで検証できる
(初回実行時は
Allow dev_appserver to check for updates on startup? (Y/n)
と、SDKのアップデートをチェックするかを選択する(Y(チェックする)を選択した))
http://localhost:8080をブラウザで開くと無事
Hello, world!
が表示された
Google App EngineにはWSGI互換の
Python用ライブリが用意されている
それを使ったコードに置き換える。。。
疲れたので後で
2008年3月6日木曜日
Tomcat設定
Tomcat起動後の初回アクセス時にクラスをロードしているのか
やたらと時間がかかる.....
TomcatのJavaオプションのヒープサイズで
-Xmx654M
を指定していたが
これをTomcatオプションの
InitialMemoryPool=256M
MaximunMemoryPool=654M
に変更したら、初回でもサクサク動くようになった
やたらと時間がかかる.....
TomcatのJavaオプションのヒープサイズで
-Xmx654M
を指定していたが
これをTomcatオプションの
InitialMemoryPool=256M
MaximunMemoryPool=654M
に変更したら、初回でもサクサク動くようになった
2008年3月5日水曜日
2008年1月15日火曜日
Hibernateのキャッシュ
Hibernateにはキャッシュ機能がありload()、get()を行うと自動的にインスタンスがキャッシュされる。
そのため、インスタンスのdelete()後にget()を行うとdelete()したはずのデータがキャッシュから取得されてしまう。
PrimaryKeyからget()してデータの有無を判定するコードでこの問題が判明。
キャッシュを回避するためにget()ではなくcountのHQLで有無を判定するように変更
(インスタンスを取得するわけではないので、これならキャッシュされない!!)。
データの有無をの判定だけなので、これで問題ない
そのため、インスタンスのdelete()後にget()を行うとdelete()したはずのデータがキャッシュから取得されてしまう。
PrimaryKeyからget()してデータの有無を判定するコードでこの問題が判明。
キャッシュを回避するためにget()ではなくcountのHQLで有無を判定するように変更
(インスタンスを取得するわけではないので、これならキャッシュされない!!)。
データの有無をの判定だけなので、これで問題ない
登録:
投稿 (Atom)