Является ли @ ManyToOne & ldquo; необязательным & rdquo; параметр автоматически устанавливается с помощью Nullability Котлина

Файлы хранятся в переменной $ _FILES, а не $ _POST

http://php.net/manual/en/reserved.variables.files.php $ _FILES

http://www.php.net/manual/en/features.file-upload.php Руководство по загрузке файлов PHP.

Для обработки файл (без проверки ошибок):

$ROOT = "/path/to/store/files";
foreach($_FILES as $file => $details)
{   // Move each file from its temp directory to $ROOT
    $temp = $details['tmp_name'];
    $target = $details['name'];
    move_uploaded_file($temp, $ROOT.'/'.$target);
}

См. также http://www.php.net/manual/en/function.move-uploaded-file.php для больше примеров.

4
задан Joffrey 17 January 2019 в 17:16
поделиться

1 ответ

Рассмотрим простую сущность, подобную Room, которая имеет отношение @ManyToOne к House.

@Entity
class Room(
        @ManyToOne(optional = true)
        val house: House
) {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    val id: Long = 0
}

JPA создаст таблицу комнат со столбцом

`house_id` bigint(20) DEFAULT NULL

Если вы укажете @ManyToOne(optional = false)

, столбец будет выглядеть так:

`house_id` bigint(20) NOT NULL
[ 1122] Указывая необязательный параметр, вы сообщаете JPA, как должна быть сгенерирована схема, может ли столбец быть NULL или нет.

Во время выполнения попытка загрузить Room без House вызовет исключение, если свойство дома не обнуляется (House вместо House?), даже если значение optional равно true.

То же самое относится к @JoinColumn.

«Необязательный» ли параметр @ ManyToOne автоматически устанавливается с помощью обнуляемости Котлина?

Нет, это не так. Он не зависит от этого и по умолчанию установлен на true.

Заключение: Для того, чтобы ваша схема отражала ваши сущности, было бы неплохо использовать optional = true, если свойство дома будет обнуляемым, и optional = false, если свойство дома не обнуляемое .

0
ответ дан Willi Mentzel 17 January 2019 в 17:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: