DBに保存する前はIDが存在しないので、一律でnullableにしてるけど、みんなそうなん?
class User(
val id: Int?, // ここ
val name: String
)
javaのDBアクセスライブラリのDoma2を使ってるんだけど、何もしないとEntity(SQLの取得結果レコードがマッピングされるPOJO)はJava。そのままだとnullableか否かがわからない 自分の場合、doma-genという自動生成コマンドをちょっと改造して、DBのカラムがnotnullかどうかでjetbrainsのアノテーション(@Notnull, @Nullable)が自動で付与されるようにした
自分達はDoma2使ってる。DomaはKotlinを実験的にサポートしてるけど将来ハマりたくないので、DomaはJava。RepositoryImpl層でKotlinに手動で詰替てる。MybatisとかDBFluteとかJPAとかExposedとかどうなんだろ
DBSetup?
こんな風にしてるけど、みんなどう?
// 該当する値が無い時に例外発生させたい場合は、こんな感じでfirstで
enum class DomaGenderEnum(val code: String) {
FEMALE("0"), MALE("1"), UNKNOWN("9");
companion object {
fun from(code: String) = values().first { it.code == code }
}
}
// null返したいならfind使うか
enum class DomaGenderEnum(val code: String) {
FEMALE("0"), MALE("1"), UNKNOWN("9");
companion object {
fun from(code: String) = values().find { it.code == code }
}
}
// map使いたければ、これでいいのでは?
enum class DomaGenderEnum(val code: String) {
FEMALE("0"), MALE("1"), UNKNOWN("9");
companion object {
private val codeMap = values().associateBy { it.code }
fun from(code: String) = codeMap[code]
}
}
こんな風にletを2回やるようにしてるけど、どう?
val geoCode = param.latitude?.let { lat -> param.longitude?.let { lng -> GeoCode(lat, lng) } }
(鈴木) 拡張関数の使い所
拡張関数は便利なんだけれど、やりすぎると可読性を下げるし設計がめちゃくちゃになりそうな感じがして、あまり使えてない。
逆に、みなさんの使い所を知りたい。こういうユースケースで使うと便利だしイイよ!みたいな。