私は2つのテーブル、Shop_Employee
とShop_Employee_Type
を持っています。従業員の詳細情報を表示するときにtypeName
を直接表示したいが、この2つのエンティティの間に関係(OneToMany
またはManyToOne
)を設定したくない。
これはすべてのShop_Employee_Type
列の値をロードするので、これらの値は私にとって無用です。typeName
がShop_Employee_Type
の場合のみ必要です。 以下は私のコードですが、動作しません。
ShopEmployeeType:
@Entity
@Data
//@DynamicUpdate
public class ShopEmployeeType {
@Id
private String typeId;
private String shopId;
private String typeName;
private Integer typeStatus;
private String typeDescription;
}
Shop_Employee:
@Entity
@Data
public class ShopEmployee {
@Id
private String employeeId;
private String shopId;
private String typeId;
private String name;
private String code;
private String phone;
private Integer status;
private String idcardNumber;
private String image;
//@Transient
private String typeName;
public ShopEmployee() {
}
}
レポジトリ:
@Query(value = "select u.*,t.type_name from shop_employee u inner join shop_employee_type t on u.type_id=t.type_id", nativeQuery = true)
List<ShopEmployee> findAllData();
この私が望むようにtypeName
を表示することができましたが、新しいエンティティShop_Employeeを保存するとエラーが表示されます。 'typeName'に@Transient
を追加すると正常に保存できますが、クエリのエンティティShop_Employee
を入力すると 'typeName'の値はnullになります。