All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.moon.spring.data.jpa.JpaDataRecord Maven / Gradle / Ivy

package com.moon.spring.data.jpa;

import com.moon.data.Available;
import com.moon.data.DataRecord;

import java.util.function.Supplier;

/**
 * @author moonsky
 */
public interface JpaDataRecord extends DataRecord, JpaRecord {

    /**
     * 获取可用值
     *
     * @return
     */
    @Override
    default Available getAvailable() { return Available.YES; }

    /**
     * 设置可用值
     *
     * @param available
     */
    @Override
    void setAvailable(Available available);

    /**
     * 文本
     *
     * @return
     */
    @Override
    default String getAvailableText() {
        return getAvailable() == null ? null : getAvailable().getText();
    }

    /**
     * 是否已删除
     *
     * @return
     */
    @Override
    default boolean isDeleted() { return getAvailable() == Available.NO; }

    /**
     * 可用
     */
    @Override
    default void withAvailable() { setAvailable(Available.YES); }

    /**
     * 不可用
     */
    @Override
    default void withUnavailable() { setAvailable(Available.NO); }

    /**
     * Returns if the {@code Persistable} is new or was persisted already.
     *
     * @return if {@literal true} the object is new.
     */
    @Override
    default boolean isNew() { return getId() == null; }

    /**
     * 获取 ID
     * 

* 当使用{@link Long}做主键时,注意前后端数字的兼容性 * * @return */ @Override ID getId(); /** * 设置 ID * * @param value */ @Override void setId(ID value); /** * transfer to a {@link Supplier} * * @return a new supplier */ @Override default Supplier asIdSupplier() { return this::getId; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy