Tag: hibernate mapping

如何处理复合键hibernate

我的hbm.xml文件是这样的: 但我有两个POJO类,分别是“WordhelperWordusage.java”和“WordhelperWordusageId.java”,所以我很困惑,我应该如何处理这些类? 如何实施? 提前致谢! 更新 我确实喜欢这个 wordhelper_wordusage.save(wordhelper); wordhelper_wordusage.save(wordusage); session.save(wordhelper); session.save(wordusage); session.save(wordhelper_wordusage); 但它给我这样的例外: Hibernate: select max(ID) from SOZANA.WORDFORM Hibernate: select max(ID) from SOZANA.WORDHELPER Exception in thread “main” org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): pojopackage.WordhelperWordusage

为什么我得到org.hibernate.id.IdentifierGenerationException?

当我运行我的主类 (Runner)程序时,我得到以下exception: org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one property: country 我不知道原因,为什么我得到这个例外。 映射xml: country POJO课程: 国家 public class Country { private int countryID; private String countryName; private PM pm; public PM getPm() { return pm; } public void setPm(PM pm) { this.pm = pm; } public int getCountryID() { return countryID; } public void […]

Hibernate – 连接被拒绝

我有一些Java / Hibernate代码可以在我安装的数据库的本地机器上正常工作。 但是,我已经在Glassfish服务器上将代码上传到Internet,我无法连接到与该服务器关联的数据库。 我不认为这是一个Java问题。 我认为它与Hibernate设置有关,因为我觉得我必须更改数据库的地址,因为代码不再与我的机器上的数据库通信。 谁能帮助我? 首先,这是服务器日志中的堆栈跟踪。 java.net.ConnectException MESSAGE: Connection refused STACKTRACE: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:218) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:271) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) at com.mysql.jdbc.Connection.(Connection.java:1555) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110) […]

Hibernate创建不需要的映射表

我正在创建一个架构。 我的架构如下 @Entity @Table(name = “PROMOTION”) public class Promotion { @Id @Column (name = “promotion_id”) private String promotionId; @JoinColumn(name = “seller_id”) private List sellerList; }; @Entity @Table(name = “SELLER”) public class Seller { @Id @Column (name = “seller_id”) private String sellerId; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = “promotion_id”) private Promotion promotion; @ManyToMany(fetch = FetchType.LAZY) @JoinColumn(name = […]

Hibernate @OneToMany抛出MySQLSyntaxErrorException:您的SQL语法中有错误

我尝试检索一个列表,其中包含来自Contact一些字段以及一系列电话。 为此,我正在使用查询联系人; 另外,我创建了一个只有我需要的字段的DTO。 查询是: final StringBuilder query = new StringBuilder(); query.append(“SELECT new com.tim.core.dto.client.MinimalContactDTO(c.id, c.version, c.name, c.title, c.email, c.createdDate, c.phones) ” + ” from CONTACT c “); query.append(“where “); query.append(“( c.localRecordStatus IS NULL “); query.append(“OR c.localRecordStatus IN (:openStatusList) “); query.append(” ) “); return em.createQuery(query.toString(), MinimalContactDTO.class) .setParameter(“openStatusList”, getOpenStatusList()) .getResultList(); DTO的代码是: public MinimalContactDTO(Long id, Long version, String name, […]

将Hibernate配置放在不同的位置

Hibernate配置文件(.hbm.xml)的理想位置是 …/tomcat/webapps/projectName/WEB-INF/classes/hbm 但是,我想将这些配置设置放在不同的位置 /usr/local/properties/hibernate 我怎样才能做到这一点? 如果我将配置文件放在该位置,如果我启动Tomcat,那么在加载配置时会出现错误 找不到hibernate.cfg.xml

Hibernate:直接在bean中设置Id或调用load()或get()方法之间的区别?

以下是加载的示例: – Stock stock = (Stock)session.load(Stock.class, new Integer(2)); StockTransaction stockTransactions = new StockTransaction(); //set stockTransactions detail stockTransactions.setStock(stock); session.save(stockTransactions); 有什么区别,如果我直接设置id如下: – Stock stock =new Stock(); stock.setId(2); StockTransaction stockTransactions = new StockTransaction(); //set stockTransactions detail stockTransactions.setStock(stock); session.save(stockTransactions); 因为我已经知道了股票表的Id。 你打电话给负载还是搞定?

org.hibernate.HibernateException:无法实例化默认tuplizer

我正在使用Hibernate框架开发Web应用程序。 尝试运行webapp时出现此错误。 错误控制台: Exception caught in Create Account Dataorg.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] java.lang.NullPointerException 我的映射文件(hbm.xml): DataAccessObject文件代码: public void addCreateAccount(CreateAccount act) throws Exception { Session session = null; try{ //this step will read hibernate.cfg.xml SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); session.save(act); tx.commit(); }catch(Exception e) { System.out.println(“Exception caught in […]

测试DAO时出错:sun.reflect.generics.reflectiveObjects.TypeVariableImpl无法强制转换为java.lang.Class

我是Spring + Hibernate的新手,我正在运行测试,看看我的DAO是否正常工作。 我收到以下错误,在Google上搜索会产生很多不同的答案(主要是拼写错误,我已经检查过)。 我希望你能帮我解决这个问题: java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:308) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:321) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:220) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:301) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:303) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180) at org.junit.runner.JUnitCore.run(JUnitCore.java:157) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199) at […]

Hibernate自动增量属性

我知道你可以通过映射自动增加id; 但它是否也有可能增加一个属性,我到目前为止尝试的不起作用;