+1 امتیاز
قبل در برنامه نویسی توسط (95 امتیاز)
ویرایش شده قبل توسط

در دنیای واقعی پیش میاد، حداقل برای Grails به عینه دیدم Scala رو نمیدونم که تیمی برای صرفه جویی در وقت از کتابخانه ای که توسط تیم دیگری مثلا با JPA نوشته شده مجبور شده استفاده کنه خوب اگه در Scala به همچین کیسی میش بیاد دیگه با توجه به مدیریت پروژه معمار تیم اجازه نمیده او منطق کاری دوباره  با تکنولوژی مثل Slick نوشته بشه یعنی در اسکالا مجبوری از JPA استفاده کنی

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

برای این مورد شما راه های زیادی وجود دارد. یکی از این راه ها این است که چون در پروژه های Play که بر پایه sbt هستند می توان در فولدر app که کد های برنامه درون آن قرار دارند بطور همزمان هم کد جاوا نوشت و هم کد اسکالا، ابتدا Entity های JPA را از پروژه قبلی که بر پایه جاوا بوده کپی کرد در یک package در پروژه Play (در حالت بهتر یک فایل jar مدل ساخت و بعنوان dependency به پروژه Play معرفی کرد) سپس از این Entity ها که با جاوا نوشته شده اند در Controller های Play با استفاده از زبان اسکالا و JPAApi استفاده کرد.

@Singleton
class HomeController @Inject()(jpa: JPAApi) extends Controller {
.
.
.
}

حتی امکان تعریف JPA Entity با زبان اسکالا نیز وجود دارد:

import javax.persistence._

@Entity
@Table(name = "buddy")
class Buddy(first: String, last: String) {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  var id: Int = _

  var firstName: String = first
  var lastName: String  = last

  def this() = this (null, null)

  override def toString = id + " = " + firstName + " " + lastName
}

در کل Interoperability زبان برنامه نویسی اسکالا با جاوا بسیار زیاده و نگرانی در این زمینه وجود ندارد.

قبل توسط (95 امتیاز)
ممنون خیلی آموزنده بود

سوالات مشابه

+1 امتیاز
1 پاسخ 817 بازدید
+1 امتیاز
1 پاسخ 234 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط asg.mojtaba (1.2هزار امتیاز)
+1 امتیاز
1 پاسخ 362 بازدید
+1 امتیاز
1 پاسخ 333 بازدید
+1 امتیاز
1 پاسخ 339 بازدید
0 امتیاز
0 پاسخ 214 بازدید
+2 امتیاز
0 پاسخ 213 بازدید
...