spring+jpa+em.persist(student)不能把student对象持久化到Mysql数据中,程序运行也不报错,但可以查到数据

S_O_T 2016-09-17 10:18:49
请各位大神帮忙解决一个问题:
spring+jpa+em.persist(student)不能把student对象持久化到Mysql数据中,程序运行也不报错,但可以查到数据库中原有数据,这是什么原因啊?谢谢!(我是新手,对jpa还不太熟悉)

spring配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

<bean id="jdbc"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations" value="classpath:/dev/jdbc.properties"></property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="#{jdbc.driverClassName}"></property>
<constructor-arg value="#{jdbc.url}"></constructor-arg>
<constructor-arg value="#{jdbc.userName}"></constructor-arg>
<constructor-arg value="#{jdbc.password}"></constructor-arg>
</bean>
<bean id="emf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<description>
..........
</description>
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="default" />
<property name="packagesToScan">
<list>
<value>com.wyiwei.entity_modle.infrastructur.shared.modle</value>
</list>
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="true" />
<property name="showSql" value="false" />
</bean>
</property>
</bean>


<!-- <bean class="org.springframework.jdbc.core.JdbcTemplate"> -->
<!-- <property name="dataSource" ref="dataSource" /> -->
<!-- </bean> -->

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf" />
</bean>

<!-- <tx:annotation-driven -->
<!-- transaction-manager="transactionManager" proxy-target-class="true"/> -->
<tx:annotation-driven mode="aspectj"
transaction-manager="transactionManager" />
</beans>



实体类:

@Entity
@Table(name="STUDENT")
public class Student implements Serializable{

private static final long serialVersionUID = -4022855296927067776L;

@Id
@Column(name="STU_SEQ", nullable=false)
private Integer stuSeq;

@Column(name="STUDENT_NAME", nullable=false, length=21)
private String studentName;

@Column(name="STU_AGE", nullable=false, length=4)
private Integer stuAge;

public Integer getStuSeq() {
return stuSeq;
}

public void setStuSeq(Integer stuSeq) {
this.stuSeq = stuSeq;
}

public String getStudentName() {
return studentName;
}

public void setStudentName(String studentName) {
this.studentName = studentName;
}

public Integer getStuAge() {
return stuAge;
}

public void setStuAge(Integer stuAge) {
this.stuAge = stuAge;
}

@Override
public String toString() {
return "Student [stuSeq=" + stuSeq + ", studentName=" + studentName
+ ", stuAge=" + stuAge + "]";
}


}


测试代码:
@ContextConfiguration({ "/test-context.xml"})
public class PersistTest extends AbstractTest{

@PersistenceContext
private EntityManager em;

@Test
public void test(){

// query();

persist();

System.out.println("Over!");
}

@Transactional
private void persist(){
Student s = new Student();

s.setStuAge(30);
s.setStudentName("张三");
s.setStuSeq(1);

em.persist(s);
}

@Transactional
private void query(){
QStudent q = QStudent.student;

Student student = new JPAQuery(em).from(q).where(q.stuSeq.eq(1)).uniqueResult(q);

System.out.println(student);


}
...全文
146 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧