Skip to content

Hibernate Annotations tips その1

Hibernate Annotations tips その1 published on Hibernate Annotations tips その1 へのコメントはまだありません

今まででちょっと詰まったところとかをまとめ。
○Generation Gapパターン
Hibernateの入門用のこのページの4.2にGeneration Gapパターンについて紹介してある。
前提として既存のデータベースを使うという状況を想定。
詳細は省くとして、あるテーブルにアクセスするJavaオブジェクト(クラスA、通常は自動生成される)ってテーブル構造の変化によって変更しなきゃいけないんだけど、ユーザークラスがクラスAを直接使う場合、その都度ユーザクラスも変更しなければならない。それに対して、クラスAを継承したクラスBを作りユーザークラスはクラスBを使うようにすれば、テーブル構造の変化(=クラスAの変化)をクラスBで吸収できる、という感じ。
先ほどのページは通常のHibernateの場合だけど、Hibernate Annotationsを使った場合はどうなるか。
例えばこのページの用にデータベーススキーマからHibernate Annotationsを使ったコードを自動生成させるとして、でもそのクラスを直接ユーザークラスからは使わせたくない場合。

Continue reading Hibernate Annotations tips その1

Flexで背景をタイル状にする

Flexで背景をタイル状にする published on Flexで背景をタイル状にする へのコメントはまだありません

FlexではCSSが使えるんだけど、HTMLで使えるのとちょっと違うってのが結構えぐい。
Flexではbackground-repeatが使えなくて困った。結構基本的な機能だから当然入っていてもよさそうなんだけど。同じような事を思った人は結構いる。ここの122番とか。

Continue reading Flexで背景をタイル状にする

Hibernate Tools 3.2はEclipse 3.3用

Hibernate Tools 3.2はEclipse 3.3用 published on Hibernate Tools 3.2はEclipse 3.3用 へのコメントはまだありません

今やってるプロジェクトでは既存のDBがあるので、そっからHibernate Toolsを使ってJavaクラスとかを自動生成しようと思ったが、NoClassDefFoundErrorが発生。
結論から言うと、Hibernate Tools 3.2はEclipse 3.2では動かず。詳しくはここ参照(英語)。
プロジェクト途中でEclipseをアップグレードしたりとかは面倒なので、とりあえず今回はHibernate Toolsは使わずに行こうと思う。テーブル数はそれ程多くないので、手書きでやっても何とかなるし。

FlexとFlashを連係

FlexとFlashを連係 published on FlexとFlashを連係 へのコメントはまだありません

Flexは非常に便利なんだけど、プログラマじゃないとなかなか使いこなせないと思う。でもやっぱりデザイナーの作ったかっこいいFlashアニメーションとかも使いたかったりする。
そう言う時には通常のFlashをFlexで作るflaファイルの中に埋め込む。ただ埋め込むだけなら画像を埋め込むのと一緒だけど、Flexから埋め込まれたFlashのAction Scriptを呼び出したり、その逆をしたり。
Flexも大ざっぱに言えばFlashなので、やることはFlashファイル同士の通信と同じ。このページが参考になると思う。(Flashの場合はファイルを2つに分ける意義が少ないけど、FlexとFlashなら前述のようにプログラマーとデザイナーが共同作業ってのもよくあることだと思う)
で、前ページに書いてあるLocalConnectionで2つのswfファイルが通信できるんだけど、同じページを同時に2つ以上のウィンドウで起動すると上手くいかなかったりする。それに対する解決方法が
ここに書いてあった。LocalConnectionで指定する名前を動的に生成するという方法。まだ試してないけど。

実行可能なjar

実行可能なjar published on 実行可能なjar へのコメントはまだありません

jarファイルをダブルクリックするだけでJavaアプリケーションを起動させるための方法。
必要な物はjarファイル内にMETA-INF/MANIFEST.MFというファイルを用意するだけ。
例えばこんな感じ。

Manifest-Version: 1.0
Main-class: tv.kazu.sample.jar.AppMain

あとはjarファイルをダブルクリックすればAppMainが実行される。
基本的な情報はきしださんのこのページとかを参考に。
さて、Javaで開発をしててclasspath関係で一度も悩んだこと無い人はいないと思う。
では上記のAppMainが他のjarファイル(以下外部jarファイルと呼ぶ)に依存しているとする。JDBCドライバーだったりLog4jだったり。その場合にはどういう解決方法があるだろうか。

Continue reading 実行可能なjar

setSchemaで例外

setSchemaで例外 published on setSchemaで例外 へのコメントはまだありません

最近XML SchemaでXML文章の検証ってのをJava上でやっている。数年前のプロジェクトのメンテナンス+新機能追加って感じのプロジェクトなので新旧いろんなのが混じってる。
さて本題。XMLのパースにはSAXを使ってる。XML Schemaを使うには大体こんな感じ。

// Schemaオブジェクトの作成
SchemaFactory sf =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
sf.setErrorHandler(new MyErrorHandler()); // *1
Source schemaFile = new StreamSource(new File(“schema.xsd”));
Schema schema = sf.newSchema(schemaFile);
// パーサーの作成
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
factory.setSchema(schema);
SAXParser parser = factory.newSAXParser();

*1 MyErrorHandlerはDefaultHandlerをオーバーライド
これで普通に動いてたんだけど、antでビルドしてパッケージ作って起動すると、factory.setSchema(schema)の行で以下の例外が…

java.lang.UnsupportedOperationException: This parser does not support spe
cification “null” version “null”

Continue reading setSchemaで例外

価格差

価格差 published on 価格差 へのコメントはまだありません

1〜2週間前にネットで面白いネタを見つけた。
都内のパチンコ屋で使われてる景品(換金用のやつ)はプラスチックの容器の中に純金1gが入ってるんだって。
パチンコ屋の金の流れとしてはこんな感じ。
・客がパチンコ屋で2500円分の玉をカウンターに持って行く。
・カウンターで純金入りの景品をくれる。
・その景品をパチンコ屋のそばの交換所に持ってくと2500円くれる。
・景品交換所は回収した景品をまたパチンコ屋に持ってく。
で、ネタの本題なんだけど、最近の金価格の上昇により金1gの値段が2500円を遙かに超えてる事で、それに目を付けた人がこんな事やり始めた。
・等価交換の店でパチンコの玉を買う。(例として2500円)
・全く遊ばずにそのままカウンターに持って純金入りの景品をもらう。
・プラスチックのケースを壊して、中の金だけ取り出す。
・景品交換所に持って行かずに、取り出した金を金属商に売る(3000円位)。
・約500円の利益。
頭いいと思った。時給換算だと大したことないけど、もし自分が今東京に住んでる大学生だったらやってたかも。
先月位からこういうのをやり出した人がいるらしく、パチンコ屋でも遊ばずに商品に交換する人をかなり警戒してるらしいけど。
http://blog.livedoor.jp/zero2235/archives/54864724.html
ちょっとだけ似たような事がこっちでもあった。米ドルは過去数年 $1 = 105円〜125円位なのに対し、カナダドルは3年前位の$1 = 70円台に対し、2週間前には$1 = 120円を一時期超えた。
カナダ国内の店では便宜的にUS$1 = CA$0.8とかの簡易レートを使って、アメリカドルで買い物とか出来る店とかがあったり、本の値段とかも US$13, CA$15とか書いてある(例は適当)。なのでこういった場合はカナダドルをアメリカドルに替えてから買った方が理論上はお得。まぁ面倒だからやらないけど。
前述のパチンコの例だと、金(gold)は換金性があるから500円の利ざやを稼ぐ方法が成り立つけど、本とかだと換金性がないからなぁ。