Hibernate实体类注解的问题

刚刚和八千哥弄一个问题,这个很诡异的问题,困扰了我这么长时间。哎,说来惭愧。

用三大框架写毕设,结果今天获取前台数的时候,发现传值有个传不到。

我一开始用的是名为cows的数据,后来换了个数据库,加了一些字段,库名取为mycows。

问题从此开始了,cows中有一段从1到16的数据,在mycows中是从1到18。但是程序无论如何都是取到的从1到16的,经过测试发现,问题在用hibernate取值的话,就会是从cows数据库取值。用jdbc写,则是正确的mycows中取值。

我们用了各种方式,查配置文件,查路径,甚至重启数据库,弄了半天,好吧,要放弃了。

最后的一下,看了一下实体类。因为是注解生成的实体类,八千哥一下看到了问题所在。

/**
 * TRole entity. @author MyEclipse Persistence Tools
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "t_role", catalog = "cows")
public class TRole implements java.io.Serializable {

    // Fields

    private Integer roleId;

catalog="cows"!!!

哎,这个里面指定了数据库。。。。

因为用的是myeclipse反向生成的,当初数据库是cows,而现在修改为mycows,所以才出现总是查询到cows里面的数据。

个人觉得,框架的这个设计有点问题。既然在hibernate的配置xml里面指定了数据库,这个实体类里面还可以运用不同的catalog,并且不报错,这个问题实在是有点让人头疼的。

问题已解决,小问题实在折腾人啊。分享出来,希望大家不要重蹈覆辙。

原文地址:https://www.cnblogs.com/juepei/p/3502942.html