RememberedProject.java

package de.mirkosertic.powerstaff.project.command;

import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
import org.springframework.data.domain.Persistable;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Table("remembered_project")
public class RememberedProject implements Persistable<String> {

    @Id
    @Column("user_id")
    private String userId;

    @Column("project_id")
    private Long projectId;

    /**
     * Steuert ob Spring Data JDBC INSERT oder UPDATE ausführt.
     * Da userId ein String-PK ist, würde isNew() ohne dieses Flag immer false liefern
     * (Spring Data prüft ob PK null ist – bei Strings nie der Fall).
     */
    @Transient
    private boolean isNew = false;

    public RememberedProject() {}

    public RememberedProject(final String userId, final Long projectId, final boolean isNew) {
        this.userId = userId;
        this.projectId = projectId;
        this.isNew = isNew;
    }

    @Override
    public String getId() { return userId; }

    @Override
    public boolean isNew() { return isNew; }

    public String getUserId() { return userId; }
    public void setUserId(final String userId) { this.userId = userId; }

    public Long getProjectId() { return projectId; }
    public void setProjectId(final Long projectId) { this.projectId = projectId; }
}