Java

JPA 2.2のJavaDocを日本語に翻訳した

ガクッhttps://megascus.github.io/jpa-spec/docs/apidocs/

Oracleにjdbcで接続したときのタイムゾーンの設定

以下のような感じらしい。デフォルトではクライアントのユーザーが使用しているタイムゾーンが使用される。=システム環境変数(user.timezone)の値 システム環境変数で指定されているため、実行時のオプションで上書きすることが出来る java -jar XXXX.jar -…

Tomcatのバージョンごとのweb.xmlのヘッダー

それぞれバージョンがあってないと一部使用できない機能があるので注意。 Tomcat 9.X <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> Tomcat 8.X </web-app>

Class#forNameはファイルシステムが大文字小文字の区別をしない場合にNoClassDefFoundErrorを投げることがある

タイトルのとおり。 通常、Class#forNameでクラスが見つからない場合はClassNotFoundExceptionが発生するが、 Windows上では以下のJUnitのテストコードのような挙動を示す。 package test; import org.junit.Test; public class TestMain { @Test public voi…

静的コード解析でコードの改善を行う

コードレビューはしたことがあるでしょうか。 変なコードを書いていないかを確認するためにだれかにコードを確認してもらうという事はよくやります。誰かにコードを見てもらえるのが一番良いのですが、その誰かがいない場合、機械的にコードを解析して変なと…

JavaのStringクラスの文字列置換

はまっていた人を久々に見かけたので。JavaのStringクラスには文字列置換を行ってくれるメソッドが4種類用意されています。 replace(char oldChar, char newChar)この文字列内にあるすべてのoldCharをnewCharに置換した結果生成される文字列を返します。 rep…

Windows Azure websites で Tomcat を無償で運用する

2016/10/12追記下記件、ドキュメント外の仕様についても扱ってましたが、2016/10/12時点では、記載されている挙動とは違った動作になるそうです。 (Tomcatにライブラリを追加したい場合のlibのフォルダの位置とか)また、勝手にシャットダウンされる旨記載さ…

QuerydslでJPAが思ったよりも捗る

先日、 [twitter:@seratch]さんから教えていただいたQuerydslがすごい良かったので記事として書きます。http://www.querydsl.com/ JPAにおける課題 JPAではJPQLとCriteriaという二つのクエリ記述言語があります。 しかしながら、それぞれ使い勝手という意味…

JPQLの微妙なところでeclipse-linkとHibernateを比べてみる

JPQLでこんなのを書いてみました。 select p1, p2 from Product as p1, Product as p2 where p1.name = p2.name 戻り値は2つのエンティティ。 戻り値の結果 ElipseLink2.4.0 Hibernate4.1.9.Final 結果は、両方共Listで帰ってきて、その下にObjectの配列[p1,…

IntelliJ IDEAでJavaEE6

せっかくIntelliJ IDEAを買ったので、JavaEE6開発に使ってみることにしました。 環境構築で色々と困ったところがあったので手順を記しておきます。前提条件としてmavenでプロジェクトを作ることとしています。 これはIntelliJ以外からプロジェクトを開けない…

Java EE 6 With Scala

さて、JavaEE6をGroovyで記載していたのとは取って代わってScalaでやってみました。 思ったよりも容易だったし、実用的に感じました。 DB設計者の悩みを解決するtrait DBの設計をしていると必ず頭を悩ませる問題があります。 それはtypoです。両手で数えられ…

GroovyでEJB作成は辛い

ということで、前々回のInterface付きのEJBが単純な形でLookUpできないと前回のビジネスインターフェース無しのEJBを作る場合は@LocalBeanアノテーションをつけたほうが良いにおいて、GroovyのクラスがJavaに変換されると、インターフェースであるGroovyObje…

ビジネスインターフェース無しのEJBを作る場合は@LocalBeanアノテーションをつけたほうが良い

昨日書いた記事は記載が足りていませんでした。EJBのJSR(4.9.8 Session Bean’s No-Interface View)を確認したところ、EJBのビジネスインターフェースを作らなくて良い条件は以下の3つのいずれかを満たす必要があるそうです。 If the bean does not expose an…

Interface付きのEJBが単純な形でLookUpできない

この内容は陳腐化しています。次の日の記事を参照して下さい。 GroovyでEJBを書いてみた 年末のJava Advent Calendarのネタにと思い、GroovyでEJBを書いてみてました。 そうしたら、なぜか動かない。 調べてみると、ちょうど以下と同じ現象。 https://commun…

Javaのチェック例外と非チェック例外

理想 java.lang.Object └ java.lang.Throwable ├ java.lang.Error ├ java.lang.Exception └ java.lang.RuntimeException 現実 java.lang.Object └ java.lang.Throwable ├ java.lang.Error └ java.lang.Exception └ java.lang.RuntimeException 困ったものだ。

TIS謹製のeXcaleをJavaで使ってみた(2) #eXcale

引き続き使ってみた。 今日はデータベース周り。と思ったのだけれど、 データベースメンテナンス用のインターフェースがない ということに気がついたあたりでやる気が非常に下がったweXcaleのドキュメントに記載された作成例ではHibernateを使っていたけれ…

TIS謹製のeXcaleをJavaで使ってみた(1) #eXcale

最近、あのTIS社が無料でPaaS環境のベータ版を開放したとのニュースがあったので、早速使ってみました。TIS、Java言語対応のWebアプリ開発基盤サービス「eXcale」ベータ版を公開 ドキュメントがあまりにあんまり とりあえず使い方のドキュメントを読んでみま…

Lazyな関連からの取得はトランザクション境界外からしてはいけない

昨日の記事でLazyなものはエラーになってから対応すれば良いと書いたけれども、実はまずいらしいです。 JPAではトランザクション境界外でのLazyな関連の取得に関しては、出来る、出来ないに関しては定義されていないみたいです。単純に、以下のようにだけ。W…

GlassFish勉強会で金魚本に載ってないJPQLの話をしてきた #GlassFishJP

ちなみに金魚本というのは以下の本です。Beginning Java EE 6~GlassFish 3で始めるエンタープライズJava (Programmer's SELECTION)作者: Antonio Goncalves,日本オラクル株式会社,株式会社プロシステムエルオーシー出版社/メーカー: 翔泳社発売日: 2012/03/0…

素数の時にJoJo -Java-

なんか流行りらしいので。素数のときだけ"JOJO!"って出力するプログラムを作ってみた - くりにっき素数のときにJoJo - scala - - 言葉をポッケに持ち歩こう素数の時にEnrico Pucciと出力するプログラムを書いてみた - mike、mikeなるままに…まったくもって面…

"変態"を色々な文字集合で表したものをHexDampしてみる

変態アドベントカレンダー多分21日目ということで記事を書きます。 2週目ということもありネタも無いまま30分で準備できて30分で記事をかけるというもので。Javaに限らずプログラミング言語では文字集合という概念を使用して文字を扱っています。 違う文字集…

大人数開発を支える技術

変態アドベントカレンダーに登録してみたので書きます。変態アドベントカレンダー昨日の記事は[twitter:@Kuchitama]さんの「ジャッジメントですの変換を作ってみる」ですの。 私は全然変態ではないので、そもそも変態ってなんなんだろうーと思って辞書を引い…

個人的正規表現メモ

なんとなく職場で隣の人に話した内容を。 正規表現使うならgrepではなくegrepを 基本正規表現と拡張正規表現と大きく分けて2種類あるけれども、 処理系によって微妙に違うのであまり覚える必要はない。ただ、多くのプログラミング言語で使用する場合は拡張正…

Java SE6からJDBC接続でClass#forNameは要らなくなりました

Java SE6からJDBC接続をするときのClass#forNameは要らなくなりました。 ※正確にはJava SE6から仕様化されたJDBC 4.0 APIを実装したドライバ詳細はDriverManagerクラスのJavaDocを参照して下さい。だけだと、あまりにもアレなのでそもそもClass#forNameで何…

GlassFish Users Group Japan 勉強会 June 2012 #glassfishjp

発表してきました。 えーっと、置いてけぼりにしてごめんなさい=□○_30分しかなかったのでもうちょっと絞ったほうが良かったですね・・・・・・まあ、いいや。今更な内容になってしまうので、当日の内容とは関係ないお話をしようかなと。 GlassFishかTomcat…

JSF2でファイルアップロード

おとなしくRichFacesかPrimeFacesを使っとけ。http://livedemo.exadel.com/richfaces-demo/richfaces/fileUpload.jsf http://www.primefaces.org/showcase/ui/fileUploadHome.jsf一応対に。

JSF2でファイルダウンロード

JSF1.Xでファイルのダウンロードをするときに非常に面倒くさい感じがしていたのでJSF2でどうなったのか調べてみたら相変わらず面倒臭い感じ。http://stackoverflow.com/questions/5498391/how-to-download-a-file-stored-in-a-database-with-jsf-2-0ただ、Ex…

Object#hashCode()とIdentityHashMapとEclipseLink

ちょっと気になる記事が二つほど。 - 地平線に行くのjava.lang.Object#hashCode()の性質 自明でない日々のEntityManager の contains メソッドについて EclipseLinkではjava.util.IdentityHashMapを利用しているようですが、java.util.IdentityHashMapではja…

初心者にEJBの利点を説明できない

※酔っ払った勢いだけで書いてます今日、忘年会の最中にちょっと研究職の人とお話をすることがあったのだけれども、 その人曰く、EJBを使ってもらえればEJBの良さはみんなすぐに分かってくれるとのことでした。そんなわけねえだろう。EJBの利点って、何かと言…

JavaEE使ってウェブアプリケーションつくろうよ

これはJava Advent Calendarの17日目。 記事としては、 @irof さんの JUnitの知識を棚卸し #JJUG のあと、@Nagise さんの ProxyパターンとProxyクラスと黒魔術 の前となります。JavaEEって何かよく判らない、なんか難しそうというお話を聞いたので自分なりに…