2016-04-01 72 views
0

我想测试我的连接到Hibernate是否在我的代码中工作,所以我设置了一个基本的方法来在表中创建一个新的实体。当我运行代码时,我没有看到错误,当我第一次运行它时,Hibernate成功创建了表,但表中没有创建该行。任何人都知道为什么这可能会发生?粘贴用户类和代码以创建以下以及日志。Hibernate创建表但不创建条目?

public static void main(String[] args) { 
    Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession(); 
    session.beginTransaction(); 
    User user = new User(); 
    user.setPassword("abcd"); 
    user.setStatus(UserStatus.OFFLINE); 
    user.setUserName("testuser"); 
    session.save(user); 
} 

用户等级:

@Entity 
    @Table(name="USERS") 
    public class User { 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name="USER_ID") 
    private String userId; 

    @Column(name="USER_NAME") 
    private String userName; 

    @Column(name="PASSWORD") 
    private String password; 

    @Enumerated(EnumType.STRING) 
    @Column(name="STATUS") 
    private UserStatus status; 

    public String getUserId() { 
     return userId; 
    } 

    public void setUserId(String userId) { 
     this.userId = userId; 
    } 

    public String getUserName() { 
     return userName; 
    } 

    public void setUserName(String userName) { 
     this.userName = userName; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public UserStatus getStatus() { 
     return status; 
    } 

    public void setStatus(UserStatus status) { 
     this.status = status; 
    } 
} 

日志:

[main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.1-Final 
[main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 
[main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 
[main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 
[main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml 
[main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml 
[main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : messagingservice/db/User.hbm.xml 
[main] INFO org.hibernate.cfg.HbmBinder - Mapping class: messagingservice.db.User -> USERS 
[main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null 
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!) 
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20 
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false 
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/CAREZONE_MESSAGING 
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=hibernate, password=****} 
[main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: MySQL, version: 5.7.11-log 
[main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: MySQL Connector Java, version: mysql-connector-java-5.1.37 (Revision: 09940f05b4c98150f352e787a2549f11a2e9da93) 
[main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect 
[main] INFO org.hibernate.transaction.TransactionFactoryFactory - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory 
[main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 
[main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15 
[main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled 
[main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto 
[main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2 
[main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1 
[main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 
[main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory 
[main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {} 
[main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge 
[main] INFO org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge - Cache provider: org.hibernate.cache.HashtableCacheProvider 
[main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo 
[main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled 
[main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled 
[main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory 
[main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured 
[main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export 
[main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database 
[main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete 

回答

4

您还没有提交你的事务。你需要做:

public static void main(String[] args) { 
    Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession(); 

    Transaction tx = session.beginTransaction(); 

    User user = new User(); 
    user.setPassword("abcd"); 
    user.setStatus(UserStatus.OFFLINE); 
    user.setUserName("testuser"); 

    session.save(user); 
    tx.commit(); 
    session.close(); 
} 
+0

这样做。谢谢! – thurmc