我是JPA的新手。我在数据库中有这些表,其中列Created_By不能为空。问题是我遇到了约束问题,因为此值不可为空。
数据库:Oracle 11G 应用服务器:IBM Websphere 使用JNDI作为数据源 交易表:
Customer_Id | Amount | Status | Created_BY | Created_Date |
1 | 10 | Pending | (USER) | (new Date()) |
在我的Java代码中,我没有设置CreatedBy和属性,因为它们在日期为SYSDATE的数据库脚本中默认设置。
Customers customer = new Customer();
customer.setCustomerId(12324);
customer.setAmount(10);
customer.setStatus(StatusType.PENDING.getName());
customer.setCreatedDate(new Date());
无论如何,我可以使用JPA从数据库中访问用户吗?不使用本地查询“从Dual中选择用户”。
答案 0 :(得分:0)
我可以通过下面的代码获取连接用户名。
EntityManagerFactoryInfo info = (EntityManagerFactoryInfo) em.getEntityManagerFactory();
String userName = info.getPersistenceUnitInfo().getNonJtaDataSource().getConnection().getMetaData().getUserName();