SlideShare a Scribd company logo
Java EE 6 with Scala
      @megascus
自己紹介

• twitter   id: @megascus

• 仕事では銀行常駐してC#な案件やってます。


• Java   EE Advent Calendarぜひ見て下さい!

 http://atnd.org/events/33783
Java以外でJava EE 6
Scalaってなんだ

 Object指向型言語と関数型言語を統合した言語で最近注
 目されている。
 Twitter社も採用。
実際のコード
Entity(Java)

@Entity
public class EntityClass implements Serializable {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Long id;

    public Long getId() {
      return id;
    }

    public void setId(Long id) {
      this.id = id;
    }
}
Entity(Scala)


@Entity
@serializable
class EntityClass {
 @Id
 @GeneratedValue (strategy = GenerationType.AUTO)
 @BeanProperty // GetterとSetterの自動生成
    var id: Long = _
}
EJB(Java)
@Stateless
@LocalBean
public class CrudEJB {

    @PersistenceContext(unitName = "default")
    protected EntityManager manager;

     public EntityClass create(EntityClass entity) {
       manager.persist(entity);
       return entity;
    }

    public List<EntityClass> readAll() {
      return manager.createNamedQuery("findAll").getResultList();
    }

    public EntityClass read(Long id) {
      return manager.find(EntityClass.class, id);
    }

    public EntityClass update(EntityClass entity) {
      return manager.merge(entity);
    }

    public void delete(EntityClass entity) {
      manager.remove(entity);
    }
}
EJB(Scala)

@Stateless
@LocalBean
class CrudEJB {
 @PersistenceContext(unitName="default")
 protected var manager: EntityManager = _

    def create(entity: EntityClass): EntityClass = {
      manager persist entity
      entity
    }
    def readAll()(entity: EntityClass) = manager createNamedQuery ("findAll") getResultList

    def read(id: Long) = manager find classOf[EntityClass] id

    def update(entity: EntityClass) = manager merge entity

    def delete(entity: EntityClass): Unit = manager remove entity
}
Build


今回はMavenを使うので

pom.xmlに設定を追記していきます。
repository
<repositories>
  <repository>
   <id>scala-tools.org</id>
   <name>Scala-tools Maven2 Repository</name>
   <url>http://scala-tools.org/repo-releases</url>
  </repository>
</repositories>
<pluginRepositories>
  <pluginRepository>
     <id>scala-tools.org</id>
     <name>Scala-tools Maven2 Repository</name>
     <url>http://scala-tools.org/repo-releases</url>
  </pluginRepository>
</pluginRepositories>
dependency


<dependency>
  <groupId>org.scala-lang</groupId>
  <artifactId>scala-library</artifactId>
  <version>2.9.2</version>
</dependency>
plugin

 <plugin>
  <groupId>org.scala-tools</groupId>
  <artifactId>maven-scala-plugin</artifactId>
  <version>2.15.2</version>
  <executions>
     <execution>
       <goals>
          <goal>compile</goal>
       </goals>
     </execution>
  </executions>
</plugin>
フォルダ構成

.
├ pom.xml
└ src
   └ main
     ├ java
     ├ resources
     │ └ META-INF
    ├ scala //ここにScalaのソースを入れていく
     └ webapp
ソースコード



• https://github.com/megascus/JavaEE6Scala

More Related Content

PDF
(続) Effective SQLite for Android
Shinobu Okano
 
PPT
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
Sadao Tokuyama
 
PDF
jQuery勉強会#3
Ryo Maruyama
 
PDF
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Nobuhiro Nakajima
 
PPTX
[JavaDo] JAX-RS ハンズオン 第2部
haruki ueno
 
PDF
テストって何がしたいんですか?
Satoshi Kubo
 
PDF
Advent calendarを作ってみた
Satoshi Kubo
 
PDF
泥沼の中のパフォーマンスチューニング #JJUG
Satoshi Kubo
 
(続) Effective SQLite for Android
Shinobu Okano
 
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
Sadao Tokuyama
 
jQuery勉強会#3
Ryo Maruyama
 
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Nobuhiro Nakajima
 
[JavaDo] JAX-RS ハンズオン 第2部
haruki ueno
 
テストって何がしたいんですか?
Satoshi Kubo
 
Advent calendarを作ってみた
Satoshi Kubo
 
泥沼の中のパフォーマンスチューニング #JJUG
Satoshi Kubo
 

Similar to Java ee6 with scala (20)

PDF
Heroku java
Kazuyuki Kawamura
 
PDF
Gradle布教活動
Nemoto Yusuke
 
PPT
Springでdao 20070413
Funato Takashi
 
PDF
Seasarプロジェクト徹底攻略
takezoe
 
KEY
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
PPTX
Scala.jsはじめました?
K Kinzal
 
PDF
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
 
PPTX
TDC20111031_Groovy_Geb
Nobuhiro Sue
 
PDF
Best practice laravel
Risa Ohnishi
 
PDF
scala-kaigi1-sbt
Kenji Yoshida
 
PDF
Rails3.1rc4を試してみた
Takahiro Hidaka
 
KEY
Google App Engine for Java
Takuya Tsuchida
 
PDF
イマドキの現場で使えるJavaライブラリ事情
takezoe
 
PDF
React Native GUIDE
dcubeio
 
PDF
fanscala1 3 sbt
Toshiki Shinozaki
 
PDF
Scala EE 7 Essentials
tnoda
 
PDF
Play framework 2.0のちょっとした紹介
Ryo RKTM
 
PDF
ScalaMatsuri 2016
Yoshitaka Fujii
 
PDF
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki
 
PDF
ScaLa+Liftとか
youku
 
Heroku java
Kazuyuki Kawamura
 
Gradle布教活動
Nemoto Yusuke
 
Springでdao 20070413
Funato Takashi
 
Seasarプロジェクト徹底攻略
takezoe
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
Scala.jsはじめました?
K Kinzal
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
 
TDC20111031_Groovy_Geb
Nobuhiro Sue
 
Best practice laravel
Risa Ohnishi
 
scala-kaigi1-sbt
Kenji Yoshida
 
Rails3.1rc4を試してみた
Takahiro Hidaka
 
Google App Engine for Java
Takuya Tsuchida
 
イマドキの現場で使えるJavaライブラリ事情
takezoe
 
React Native GUIDE
dcubeio
 
fanscala1 3 sbt
Toshiki Shinozaki
 
Scala EE 7 Essentials
tnoda
 
Play framework 2.0のちょっとした紹介
Ryo RKTM
 
ScalaMatsuri 2016
Yoshitaka Fujii
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki
 
ScaLa+Liftとか
youku
 
Ad

More from Satoshi Kubo (12)

PDF
Jakarta CDI 4.0
Satoshi Kubo
 
PDF
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Satoshi Kubo
 
PPTX
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
Satoshi Kubo
 
PPTX
今のJava
Satoshi Kubo
 
PPTX
できる!Pmdカスタマイズ
Satoshi Kubo
 
PPTX
Javaの速度比較
Satoshi Kubo
 
PDF
Java EEの話(仮)
Satoshi Kubo
 
PDF
Strutsから移行する人のためのjsf基礎
Satoshi Kubo
 
PDF
Junitを使ったjavaのテスト入門
Satoshi Kubo
 
PPT
Glass fishで作ったアプリをweblogicに移植してみた
Satoshi Kubo
 
PDF
金魚本に載ってないJpqlの話 #glassfishjp
Satoshi Kubo
 
PDF
JavaEE6 First Application #glassfishjp
Satoshi Kubo
 
Jakarta CDI 4.0
Satoshi Kubo
 
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Satoshi Kubo
 
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
Satoshi Kubo
 
今のJava
Satoshi Kubo
 
できる!Pmdカスタマイズ
Satoshi Kubo
 
Javaの速度比較
Satoshi Kubo
 
Java EEの話(仮)
Satoshi Kubo
 
Strutsから移行する人のためのjsf基礎
Satoshi Kubo
 
Junitを使ったjavaのテスト入門
Satoshi Kubo
 
Glass fishで作ったアプリをweblogicに移植してみた
Satoshi Kubo
 
金魚本に載ってないJpqlの話 #glassfishjp
Satoshi Kubo
 
JavaEE6 First Application #glassfishjp
Satoshi Kubo
 
Ad

Recently uploaded (10)

PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 

Java ee6 with scala