ChatGPT解决这个技术问题 Extra ChatGPT

使休眠忽略未映射的类变量[重复]

这个问题在这里已经有了答案:在持久化期间忽略 JPA 字段的最简单方法是什么? (10 个回答) 6 年前关闭。

我认为 hibernate 只考虑用 @Column 注释的类变量。但奇怪的是,今天当我添加一个变量(未映射到任何列,只是我在类中需要的一个变量)时,它试图将该变量作为列名包含在 select 语句中并引发错误 -

“字段列表”中的未知列“team1_.agencyName”

我的课 -

@Entity
@Table(name="team")
public class Team extends BaseObject implements Serializable {

@Id  @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

@Column(length=50)
private String name;

@Column(length=10)
private String code;

@Column(name = "agency_id")
private Long agencyId;

private String agencyName; //note: not annotated.

}

仅供参考...我在另一个具有多对多映射的类中使用上述类

@ManyToMany(fetch = FetchType.EAGER) 
@JoinTable(
        name="user_team",
        joinColumns = { @JoinColumn( name="user_id") },
        inverseJoinColumns = @JoinColumn( name="team_id")
)    
public Set<Team> getTeams() {
    return teams;
}

为什么会这样?!

非常抱歉……我是新手。会为我所有的帖子做这件事!谢谢你告诉。
@Tunaki 不,这不完全是问题“JPA 在持久性期间忽略字段的最快方法?”的重复。 (stackoverflow.com/questions/1281952/…) 这张票是关于 Hibernate 的,而另一张是关于 JPA 的。
@hese 你的基类有一些变量吗?如果是,休眠是否会忽略它们或考虑到它们?

s
skaffman

JPA 将使用该类的 所有 属性,除非您特别用 @Transient 标记它们:

@Transient
private String agencyName;

@Column 注释完全是可选的,可以让您覆盖自动生成的列名。此外,@Columnlength 属性仅在自动生成表定义时使用,它对运行时没有影响。


您也可以使用 java 修饰符 transient 代替注解
是否有可能仅在持久化时才忽略该变量,但在从数据库中获取数据时,可以考虑该字段?
感谢@CodeMed 下面的回答,不要导入错误的包:import javax.persistence.Transient;
C
CodeMed

对于通过搜索引擎找到此帖子的人来说,此问题的另一个可能原因是导入了错误的 @Transient 软件包版本。确保导入 javax.persistence.transient 而不是其他包。


谢谢。我想知道它应该是豆子还是持久性。
谢谢,正在使用 org.springframework.data.annotation.Transient 并且很困惑为什么它不起作用。
谢谢你!!!有趣的是,我在想,我真的需要另一个谷歌搜索吗,接受的答案很可能......
S
Saumyaraj

@Transient 放在具有私有字段的 getter 上对我有用。

private String name;

    @Transient
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

将@Transient 置于吸气剂级别也对我有用。
和声明变量 @Transient 没有区别吗?
@ADTC 取决于使用的库,有些人对 getter/setter 的注释犹豫不决,其他人则不(最近注意到 Moxy 和 Jackson 的这一点;Moxy 很棒,因为它无缘无故地默默失败),有些人不喜欢它们混合在一起(在属性和 getter/setter)。一定会喜欢的。

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅