コンストラクタ

Ebeanはデフォルトのコンストラクタを必要としません。これは、最初のエンティティBeanに引数を取るコンストラクタを渡すことができることを意味します。通常、引数は新しいBeanを作成するとき(そして通常はNULL可能ではないことが関係します)にいつでも提供する必要があるプロパティです。

@Entity
public class Customer {

  @Id
  long id;

  @NotNull @Length(100)
  String name;

  public Customer(String name) {
    this.name = name;
  }

  // getters and setters

}
  
...
@Entity
class Customer(name : String) {

  @Id
  var id: Long = 0

  @Length(100)
  var name: String = name

}
  

新しいCustomerを作成する場合、名前を指定して作成する必要があることがわかります。

Kotlinでは、nameを非NULL型の変数にすることができます。Ebeanは、KotlinのNULL可能でない型をデータベースの観点からNOT NULLとして扱い、より厳密なモデルを提供します。

Customer customer = new Customer("Hello entity bean")
customer.save()
val customer = Customer("Hello entity bean")
customer.save()

Kotlinには複数のコンストラクタスタイルがあります。こちらでエンティティ Bean に適したコンストラクタ スタイルの詳細をご覧ください。