Hibernate在方法结束后从表中调用DELETE

时间:2017-02-25 14:15:18

标签: java hibernate sql-delete

我有问题,而且我不知道如何解决它。

我有实体:

@Entity
@Table(name = "entity_languagetree")
@AttributeOverride(name = "id", column = @Column(name = "languagetree_id"))
public class LanguageTree extends BaseObject {

    @ElementCollection(targetClass = java.lang.String.class, fetch = FetchType.EAGER)
    @CollectionTable(name = "view_languagetree_to_stringlist")
    private List<String> relationship = new ArrayList<>();

    public LanguageTree() {
        //
    }

    public List<String> getRelationship() {
        return relationship;
    }

    public void setRelationship(List<String> relationship) {
        this.relationship = relationship;
    }
}

其中BaseObject

@MappedSuperclass
public class BaseObject {

    @Id
    @GeneratedValue
    @Column(name = "entity_id")
    private Long id;

    /**
     *
     * @return true if the entity hasn't been persisted yet
     */
    @Transient
    public boolean isNew() {
        return id == null;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Bean getBean() {
        return null;
    }
}

使用对象 - 在我的servlet中,我这样调用jsVarTree()

String var = jsVarTree();

我的问题,方法jsVarTree完成后,hibernate从实体relationship中删除LanguageTree列表。我不知道为什么!我没有打电话给任何删除等等。(我确定,我在调试器中花了很多时间!) :

@Override
public String jsVarTree() {
    TreeBuilder tb = new TreeBuilder(getLanguageList());
    return tb.getJsVarString(); // THIS METHOD IS ONLY GETTER !!!!
}

@Override
public List<String> getLanguageList() {
    LanguageTree lt = getLanguageTreeObject();
    return lt.getRelationship();
}

@Override
public LanguageTree getLanguageTreeObject() {
    long fakingId = languageTreeDao.getLastId();
    ServerLogger.logDebug("LAST FAKING ID: " +fakingId);
    return languageTreeDao.findOne(fakingId);
}

我在loggor中找到了这个日志:

  

HibernateLog - &gt; 15:01:03 DEBUG org.hibernate.SQL - 从中​​删除   view_languagetree_to_stringlist其中LanguageTree_languagetree_id =?

有人可以告诉我,为什么hibernate会在我的表上调用delete?

我在phpmyadmin看到了一张桌子..

TABLE IS FULL.
String var = jsVarTree();
TABLE IS EMPTY.

return tb.getJsVarString();完成后删除表。

感谢您的帮助!

0 个答案:

没有答案