java - 基本实体自定义列
问题描述
我有基本实体
@MappedSuperclass
public class BaseEntityCore implements Serializable {
@CreatedBy
@Column(name = "olusturan", /* nullable = false, */ length = 50, updatable = false)
private String createdBy;
@CreatedDate
//@NotNull
@Column(name = "olusturma_tarihi", nullable = false, updatable = false)
private LocalDateTime createdDate ;
@LastModifiedBy
@Column(name = "guncelleyen", length = 50)
private String lastModifiedBy;
@LastModifiedDate
@Column(name = "guncelleme_tarihi")
private LocalDateTime lastModifiedDate;
@Column(name = "aktif")
private int aktif;
// getter and setter
一个实体扩展了这个基础实体,比如
@Entity
@Table(name = "foo")
@EntityListeners(value = { AbstractEntityListenerCore.class })
public class foo extends BaseEntityCore {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="foo_name")
private String fooName;
//getter and setter
}
与春天,春天jpa。我也有实体回购
public interface FooRepository extends JpaRepository<Foo, Long> {
Optional<Foo> findByFooName(String name);
}
现在我可以用 foo.setAktif(1) 保存实体。保存 foo 后,我在表 aktif 上看到的是 1。之后我运行 findByFooName 方法。这会转动对象,但该对象有 2 个 aktif 属性。第一个是 aktif,值为 1,另一个是 BaseEntityCore.aktif,值为 0。我使用 if 子句检查
if(foo.getAktif()==1){
//do something
}
else {
//throws exception;
}
我不明白为什么总是抛出异常。
解决方案
你不需要你的 if else 子句。只需始终搜索具有“Aktif”== 1 的实体。
所以用另一种方法扩展你的 repo 类
Optional<Foo> findByFooNameAndAktif(String name, int aktif);
并且只搜索你想要的“aktif”。
但是您的问题是关于“Aktif”的两个属性,对吗?
推荐阅读
- javascript - 有没有办法使用 MarkerCluster 点来创建热图?
- c - txt 文件中的第一个字符在 C 中不打印
- python - Python:Pandas Dataframe 为 Dataframe 中的每个不同类别创建单独的水平条形图
- angular - 如何正确连接可观察对象
- javascript - 如何更改 JSON 中的键值
- sql - 需要 T-SQL 查询帮助
- javascript - 约翰尼五到 arduino >>> 串行通信
- r - 如何使用 R 预测股票每天的未来价格?
- python - 如何使用 keras python 中的学习模型确定输入数据?
- javascript - 我想在用户单击注册按钮后记录用户输入的电子邮件值并选择菜单值到控制台?