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

Similar to Java ee6 with scala (20)

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

More from Satoshi Kubo (12)

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

Java ee6 with scala